وب پاورشل (Windows Powershell Web)یک ویژگی جدید در ویندوز سرور 2012 است. که به صورت یک Powershell Gateway عمل می کند و اجازه می دهد که از طریق مرورگر وب به کنسول پاورشل ، سیستم راه دور دسترسی داشته باشید. این ویژگی باعث می شود که ادمین بتوانند کامندهای پاورشل و اسکریپت ها را از طریق کنسول پاورشل بر روی مرورگر وب اجرا کنید. برای استفاده از این ویژگی شما نیاز دارید که به درستی Powershell Gateway را پیکربندی کنید و همچنین مرورگر سیستم کلاینت های شما Javascript را پشتیبانی کند و cookies ها را بر روی آنها فعال کنید.
کلاینتها شامل : لب تاپ ها ، سیستم های شخصی ، سیستم های اجاره ای ، تبلت ها ، وب کیوسک ها ، موبایل ها می باشند. این مزیت امکان اجرای کارهای مدیریتی مهم بر روی سیستم های راه دور از طریق مرورگر را می دهد. فقط کافی است که کلاینتها به یک مرورگر و اینترنت دسترسی داشته باشند.
پس از اینکه شما Powershell Gateway ، را با موفقیت اجرا و پیکربندی کردید کاربران می توانند به کنسول پاورشل از طریق مرورگر وب دسترسی داشته باشند. وقتی که کاربران پاورشل را از طریق مرورگر وب اجرا کنند پس از اینکه authentication را انجام دادند می توانند به کنسول پاورشل دسترسی داشته باشند.

 شما Windows Powershell Web را می توانید در سه مرحله زیر پیکربندی کنید :
1- نصب Windows Powershell Web
2-پیکربندی Gateway
3- پیکربندی رول های authorization و Site Security

در شکل زیر نشان داده شده است که چگونه Windows Powershell Web کار می کند :


پیش نیاز های لازم برای اجرای Windows Powershell Web :
برای نصب و پیکربندی Windows Powershell Web ، نیاز است که شما IIS ، NET4 و پاورشل ورژن 3 را بر روی سرور نصب کنید.
شما می توانید Windows Powershell Web ، را از طریق ویزارد Add Roles and Featuers یا از طریق cmdlets نصب کنید.
Windows PowershellWeb ، به کاربران اجازه می دهد که به صورت راه دور به سیستم ها از طریق مرورگر به کنسول پاورشل دسترسی داشته باشند.
اگر چه دسترسی به پاورشل از طریق وب یک ابزار قدرتمند مناسب است ، ولی خوب خطرات امنیتی را هم دارد باید پیکربندی این ویژگی به صورت امن انجام شود . تو صیه می شود که در هنگام پیکربندی Gateway Powershell Web  ، از امکانات امنیتی موجود استفاده کنید.

مرورگرهایی که از این امکان پشتیبانی می کنند ، عبارتند از :
  • Windows® Internet Explorer® for Microsoft Windows® 8.0, 9.0, and 10.0
  • Mozilla Firefox® 10.0.2
  • Google Chrome™ 17.0.963.56m for Windows
  • Apple Safari® 5.1.2 for Windows
  • Apple Safari 5.1.2 for Mac OS®
مرورگرهایی که بر روی دیوایس موبایل پشتیبانی می شوند ، عبارتند از :
  • Windows Phone 7 and 7.5
  • Google Android WebKit 3.1 Browser Android 2.2.1 (Kernel 2.6)
  • Apple Safari for iPhone operating system 5.0.1
  • Apple Safari for iPad 2 operating system 5.0.1
مرحله1-نصب Windows Powershell Web
شما می توانید این ویژگی را بر روی سرور 2012 به دو روش زیر نصب کنید.
نصب Windows Powershell Web  با استفاده از Add Roles and Featuers :
1-کنسول Server Manager را باز کنید و سپس از قسمت Manage ، گزینه Add Roles and Features را انتخاب کنید . بقیه مراحل را مطابق تصویر انجام دهید :






توجه : در مسیر زیر پس از اینکه نصب بالا تمام شد ، فایلی به اسم README.txt وجود دارد ��ه می توانید دستورات لازم جهت راه اندزای Gateway را ببنید.

C:\Windows\Web\PowerShellWebAccess\wwwroot\README.txt


نصب Windows Powershell Web با استفاده از cmdlets :
1-کنسول Windows Powershell را بر روی ویندوز با دسترسی administrator را باز کنید.
2-کامند زیر را وارد کنید.

Install-Windows Feature –Name WindowsPowerShellWebAccess -Computer Name <computer name> -IncludeManagementTools –Restart

* پارامتر computer name: نام سیستم راه دور که میخواهید وب پاورشل را نصب شود را وارد کنید.
*پارامتر Restart : بعد از نصب وب پاورشل ،سرور را به صورت خودکار ریستارت می کند.

نکته : در ویندوز پاورشل (Windows Powershell )ورژن 3 ، شما احتیاج ندارید که ماژول Server Manager را قبل از استفاده cmdlets ، اضافه کنید . این ماژول به صورت خودکار وقتی که cmdlets را اجرا می کنید اضافه میشود.
توجه:  وقتی که شما وب پاورشل را از طریق cmdlets نصب میکنید به صورت پیش فرض ابزار مدیریتی Web Server IIS نصب نمی شود. اگر شما میخواهید این ابزار بر روی سرور Powershell Web Gateway ، فعال کنید کافی است که پارامتر زیر را به کامند بالا اضافه کنید.

IncludeManagementTools
3- برای اینکه مطمئن شوید ، که آیا این Feature اضافه شده است یا نه .کافی است کامند زیر را در پاورشل وارد کنید.

Get-Windows Feature


مرحله 2- پیکربندی Gateway
پیکربندی Gateway با استفاده از cmdlets :
شما می توانید دسترسی به Powershell Web را از دو طریق زیر انجام دهید :
- با استفاده از کامند Install-PswaWebApplication
- با استفاده از کنسول گرافیکی مدیریتی IIS
با استفاده از کامند Install-PswaWebApplication ، به سرعت می توانید دسترسی به وب پاورشل را طریق Gateway پیکربندی کنید.با به کار بردن پارامتر UseTestCertificate در این کامند ، می توانید یک Certificate برای انجام تست خود ایجاد کنید.البته این کار اصلا باعث ایجاد امنیت نمی شود. برای ایجاد امنیت نیاز است که شما یک SSL Certificate معتبر داشته باشید.
به صورت پیش فرض cmdlets ،برنامه تحت وب (Web Powershell)را در کانتینر Default Web Site ، با اسم paws نصب می کند.

خوب حالا جهت پیکربندی gateway توسط کامند Install-PswaWebApplication به صورت زیر عمل می کنیم :

*برای پیکربندی وب پاورشل از طریق Gateway ، با استفاده از Test Certificate ، در کامند Install-PswaWebApplication مراحل زیر را انجام دهید :
1- کنسول Windows Powershell را باز کنید.
2- کامند Install-PswaWebApplication –UseTestCertificate را وارد کنید و بر روی Enter کلیک کنید.


نکته : هنگامی که شما دسترسی به وب پاورشل را با استفاده از cmdlets نصب میکنید به صورت پیش فرض تنظیمات زیر بر روی IIS انجام می شود و Powershell Web از طریق آدرس https://<server_name>/pswa در دسترس می باشد

  •  Path: /pswa
  • Application Pool: pswa_pool
  • EnabledProtocols: http
  • Physical Path: %windir%/Web/PowerShellWebAccess/wwwroot

نکته : البته شما با استفاده از پارامتر Webapplicationname می توانید اسم پیش فرض برنامه وب را که pswa می باشد را تغییر دهید.
به عنوان مثال با استقاده از پارامتر بالا به Web Powershell ،از طریق آدرس https://< server name>/myWebApp  دسترسی دارید.

Install-PswaWebApplication –webApplicationName myWebApp –useTestCertificate



*برای دسترسی به Web Powershell از طریق Gateway با استفاده از genuine certificate توسط کامند Install-PswaWebApplication به صورت زیر عمل کنید :
1- کنسول Windoes Powershell را باز کنید.
2- کامند Install-pswawebpowershell را وارد کنید و بر روی Enter کلیک کنید که با استفاده از این کامند تنظیمات زیر به صورت پیش فرض در IIS انجام می شود.

Path: /pswa
Application Pool: pswa_pool

   Physical Path: %windir%/Web/PowerShellWebAccess/wwwroot
Enabled Protocols: http


3- برای باز کردن کنسول IIS به مسیر زیر بروید :
Console Server Manager ----- > Menu Tools -------> Internet Information Services (IIS) Manager
4- در کنسول IIS ، فولدر Site را باز کنید.

5- بر روی وب سایت ای که در کنسول IIS نصب شده است کلیک کنید.از پنل Action گزینه Bindings را انتخاب کنید.

6- در پنجره Site Binding بر روی Add کلیک کنید.

7- در پنجره Add Site Binding ، از فیلد Type گزینه https را انتخاب کنید.

8- در فیلد SSL Certificate ، سر تیفیکیت (Certificate) مورد نظر را انتخاب کنید و بر روی ok کلیک کنید.
حالا به Web Powershell از طریق آدرس https://<server_name>/pswa دسترسی دارید.

پیکربندی Gatewaye با استفاده از کنسول IIS Manager :
1- جهت باز کردن کنسول IIS Manager ، مسیر زیر را بروید :

Server Manager ---->Menue Tools ----->Internet Information Service (IIS) Manager

2- در کنسول باز شده ، فولدر Site را از منوی درختی باز کنید.

3- از پنل Action ، بر روی Add Website کلیک کنید.

4- در پنجره باز شده در فیلد های مورد نظر ، موارد زیر را وارد کنید.

Site Name: Windows Power Shell Web Access

Application Pool : تنظیم پیش فرض را تغییر ندهید.

Physical path: %windir%/Web/PowerShellWebAccess/wwwroot

Binding Type: HTTPS

در پایان تنظیمات بر روی ok کلیک کنید.
5- جهت دسترسی دادن به Application Pool برای authorization file که در مرحله قبل ایجاد کردید اسکریپت زیر را در پاورشل اجرا کنید.

$applicationPoolName = "<application_pool_name>"

$authorization File = "C:\windows\web\powershellwebaccess\data\AuthorizationRules.xml"

c:\windows\system32\icacls.exe $authorization File /grant ('"' + "IIS AppPool\$applicationPoolName" + '":R') > $null

و برای اینکه ببینم آیا دسترسی ایجاد شده است یا نه کامند زیر را اجرا کنید :

c:\windows\system32\icacls.exe $authorizationFile

که پیغام زیر باید از اجرای این کامند داده شود .

6- با کلیک بر روی web site ای که ایجاد کرده اید ، از پنل Action بر روی Start کلیک کنید .
حالا در مرورگرتان می توانید آدرس https://< gateway_server_name>  را وارد کنید تا به پاورشل دسترسی داشته باشید.


Reference Link : http://technet.microsoft.com/en-us/library/hh831611.aspx