فعال سازی و تنظیم IIS Remote Management توسط PowerShell - مدیریت IIS از راه دور

مدیریت سرورهای وب – IIS از طریق GUI در صورتی که دسترسی به سرور داشته باشید بسیار ساده است، اما اگر شما نیز مثل من تعداد زیادی WebServer در موقعیت های مختلف و یا Cloud دارید دسترسی به کنسول سرور دشوار و یا بدتر از آن از RDP برای مدیریت آنها استفاده می کنید که ای روش شما اصلا منطقی و در راستای بهترین راه کارهای پیشنهاد توسط مایکروسافت نیست. راه کار بسیار بهتر و موثر تری برای مدیریت تعداد زیادی سرور از راه دور وجود دارد که همانا PowerShell Remoting می باشد.

مراحل کار:

اگر قبلا این کار را از طریق GUI انجام داده اید در جریان مراحل انجام کار هستید، از طریق PowerShell نیز انجام این مراحل به همان شکل است با این تفاوت که بسیار سریعتر و کم دردسر تر است. ترتیب اجرای موارد به صورت زیر است:
1- برقراری یک ارتباط (Session) با هر سرور
2- نصب IIS Management Service
3- فعالسازی IIS Management Service
4- استارت سرویس WMSVC
5- جایگزینی گواهینامه امنیتی Self-Signed
6- اتصال از طریق IIS Manager

در این آموزش این سرویس را بر روی 4 سرور مختلف با نام های web1,web2,web3 و web4 بصورت یکجا نصب خواهیم نمود.


1- تعریف PowerShell Remoting برای Web Server ها
ابتدا یک متغیر با نام $Servers ایجاد می کنیم و تمامی نام های کامپیوتر ها را درون آن قرار می دهیم. شما نیز می توانید لیست آنها را از یک فایل .csv و یا .txt نیز فراخوانی کنید. اگر سرورهای شما در Active Directory هستند می توانید با استفاده از دستور Get-ADComputer نیز سرورهای مقصد خود را شناسایی نمائید.
PS C:\ZAGRIO> $Servers = "web1,web2,web3,web4"
سپس یک Session به سمت هر سرور ایجاد میکنیم:
PS C:\ZAGRIO> $Sessions = New-PSSession -ComputerName $Servers

2- نصب سرویس IIS Remote Management
با استفاده از دستور زیر برای تمامی سرورها سرویس IIS Remote Management را نصب میکنیم.
PS C:\ZAGRIO> Invoke-Command –Session $Sessions –ScriptBlock {Install-WindowsFeature Web-Mgmt-Service}
پس از نصب لازم است سرویس را فعال کنیم اما برای این کار cmdlet وجود ندارد

3- فعالسازی سرویس Management Service
بصورت پیشفرض سرویس مدیریت IIS بر روی پورت 8127 فعال است. همچنین بصورت پیشفرض با نصب این سرویس یک گواهینامه امنیتی Self-Signed با مدت اعتبار 10 سال نیز ایجاد می گردد. اگر در شبکه داخلی از این امکان می خواهید استفاده کنید این مورد اشکالی ندارد اما در ادامه به شما نشان خواهیم داد که به چه صورت آن را با یک گواهینامه امنیتی مورد اعتماد جایگرین نمائید. برای فعالسازی سرویس از دستور زیر استفاده می کنیم:
PS C:\ZAGRIO> Invoke-command –Session $Sessions -ScriptBlock{Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\WebManagement\Server -Name EnableRemoteManagement -Value 1}
حال سرویس شما فعال شده است اما کماکان لازم است سرویس مورد نظرstart شود .

4- روشن کردن سرویس Management Service
با استفاده از دستورات زیر سرویس را start کرده و در حالت Automatic نیز قرار می دهیم تا با هر بار restart شدن سرور، سرویس مجددا فعال شود.
PS C:\ZAGRIO> Invoke-command –Session $Sessions -ScriptBlock {Set-Service -name WMSVC -StartupType Automatic}
PS C:\ZAGRIO> Invoke-command –Session $Sessions -ScriptBlock {Start-service WMSVC}
در این مرحله شما امکان اتصال به سرویس فوق را از طریق سیستم دیگری خواهید داشت. اگر تمایل به جایگزین نمودن گواهینامه امنیتی دارید (عموما مشکلی وجود ندارد) می توانید با استفاده از دستورات زیر گواهینامه امنیتی را جایگزین نمائید.

5- جایگزین کردن گواهینامه امنیتی
شما می توانید یک گواهینامه امنیتی معتبر را از یک سرویس دهنده و یا Active Directory Certificate Services برای مدیریت سرورهای داخلی دریافت کنید.
گواهینامه را با فرمت .pfx به همراه یک کلمه عبور ذخیره کنید سپس با استفاده از دستور CertUtil.exe آن را نصب نمائید.
ابتدا فایل را در هر سرور کپی کنید سپس:
PS C:\ZAGRIO> $Servers | Foreach-Object {Copy-Item -Path C:\Remote.Company.loc.pfx -Destination "\\$_\c$"}
PS C:\ZAGRIO> Invoke-Command -Session $Sessions {certutil -p P@ssw0rd -importpfx c:\Remote.company.loc.pfx}
توجه داشته باشید که رمز عبور به صورت PLAIN در کد وجود دارد با توجه به اینکه ارتباط PS Remoting امن و کدگذاری شده است جای نگرانی وجود ندارد اما پیشنهاد می شود در اسکریپت های خودکار از این مهم اجتناب کنید.
پس از نصب فایلهای .pfx را به دلایل امنیتی حذف کنید:
PS C:\ZAGRIO> $Servers | Foreach-Object {Remove-Item -Path "\\$_\c$\remote.Company.loc.pfx"}
در این مرحله لازم است Thumbprint گواهینامه امنیتی نصب شده را دریافت و آن را با سرویس Management Service جایگزین نمائید. برای این کار به PSProvider مربوطه به IIS نیاز دارید. ماژول WebAdministration را با دستور زیر فراخوانی کنید:
PS C:\ZAGRIO> Invoke-Command -Session $Sessions {Import-Module WebAdministration}

Thumbprint گواهینامه امنیتی را دریافت کنید:
PS C:\ZAGRIO> Invoke-Command -Session $Sessions {$cert = Get-ChildItem -Path Cert:\LocalMachine\My | Where {$_.subject -like "*company*"} | Select-Object -ExpandProperty Thumbprint}
تنظیمات قبلی SSL Binding را حذف کنید:
PS C:\ZAGRIO> Invoke-command -Session $Sessions {Remove-Item -Path IIS:\SslBindings\0.0.0.0!8172}
تنظیمات جدید SSL Binding را اعمال کنید:
PS C:\ZAGRIO> Invoke-Command -Session $Sessions {Get-Item -Path "cert:\localmachine\my\$cert" | New-Item -Path IIS:\SslBindings\0.0.0.0!8172}
حالا شما آماده اتصال به سرور از طریق یک GUI دیگر هستید!

6- اتصال به سرور از طریق IIS Manager
پنجره مدیریت IIS را باز کنید و در صفحه اصلی در سمت چپ بر روی Connect to a server … کلیک کنید، نام سرور و مشخصات کاربری و رمز عبور را وارد نمائید. حال مشخصات شما و سرور جدید در سمت چپ ایجاد خواهد شد.

پایان
هر چند تنظیمات SSL ممکن است کمی پیچیده و با دردسر باشد اما کل منطق کار بسیار ساده است. شخصا به دلیل استفاده از PowerShell DSC این مراحل را مانند زمان قدیم تکرار نمیکنم. PowerShell Desired State Configuration این امکان را به شما می دهد تا تمامی تنظیمات مورد نیاز خود را فعال و تنظیم کنید. پیشنهاد می کنم از این امکان حتما بازدید و استفاده نمائید.
 

آیا این پاسخ به شما کمک کرد؟

انجمن پشتیبانی میزبانی زاگریو

انجمن پرسش و پاسخ میزبانی زاگریو
پاسخ به پرسش های شما در زمینه فن آوری اطلاعات و صنعت میزبانی وب

 چاپ این مقاله

خوانده شده

6 دستور اساسی Powershell برای استفاده بیشتر از ویندوز

  در این مقاله ما برخی از اساسی ترین دستورات Powershell را که به کمک  آنها می توانید تجربه های...

راه اندازی سرور Reverse Proxy برای Skype for Business 2015 با استفاده از Microsoft IIS ARR 3.0

راه اندازی سرور Reverse Proxy برای Skype for Business 2015  با استفاده از Microsoft IIS ARR 3.0...

آموزش مدیریت Windows Server 2012 - Core Mode - بخش دوم

در بخش اول آموزش نصب Windows Server 2012 Core Edition را به شما آموزش دادیم، در این بخش نحوه...

آموزش نصب Windows Server 2012 - Core Mode - بخش اول

در این آموزش نحوه نصب ویندوز سرور 2012 نسخه Core - بخش اول را به شما آموزش می دهیم.به دلیل عدم...

نحوه LoadBalance کردن IP ها برای ایمیل های ارسالی توسط Exchange

در این آموزش به شما نحوه Load Balance کردن آدرس IP های خروجی (IP ارسال ایمیل) در Microsoft...

Powered by WHMCompleteSolution