فعالسازی و تنظیم IIS Remote Management توسط PowerShell – مدیریت IIS از راه دور
مراحل کار:
۱- برقراری یک ارتباط (Session) با هر سرور
۲- نصب IIS Management Service
۳- فعالسازی IIS Management Service
۴- استارت سرویس WMSVC
۵- جایگزینی گواهینامه امنیتی Self-Signed
۶- اتصال از طریق IIS Manager
۱- تعریف PowerShell Remoting برای Web Server ها
PS C:\ZAGRIO> $Servers = "web1,web2,web3,web4"
PS C:\ZAGRIO> $Sessions = New-PSSession -ComputerName $Servers
۲- نصب سرویس IIS Remote Management
PS C:\ZAGRIO> Invoke-Command –Session $Sessions –ScriptBlock {Install-WindowsFeature Web-Mgmt-Service}
پس از نصب لازم است سرویس را فعال کنیم اما برای این کار cmdlet وجود ندارد
۳- فعالسازی سرویس Management Service
به صورت پیشفرض سرویس مدیریت IIS بر روی پورت ۸۱۲۷ فعال است. همچنین به صورت پیشفرض با نصب این سرویس یک گواهینامه امنیتی Self-Signed با مدت اعتبار ۱۰ سال نیز ایجاد میگردد. اگر در شبکه داخلی از این امکان میخواهید استفاده کنید این مورد اشکالی ندارد اما در ادامه به شما نشان خواهیم داد که به چه صورت آن را با یک گواهینامه امنیتی مورد اعتماد جایگرین نمائید. برای فعالسازی سرویس از دستور زیر استفاده میکنیم:
PS C:\ZAGRIO> Invoke-command –Session $Sessions -ScriptBlock{Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\WebManagement\Server -Name EnableRemoteManagement -Value 1}
۴- روشن کردن سرویس Management Service
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}
در این مرحله شما امکان اتصال به سرویس فوق را از طریق سیستم دیگری خواهید داشت. اگر تمایل به جایگزین نمودن گواهینامه امنیتی دارید (عموما مشکلی وجود ندارد) میتوانید با استفاده از دستورات زیر گواهینامه امنیتی را جایگزین نمائید.
۵- جایگزین کردن گواهینامه امنیتی
شما میتوانید یک گواهینامه امنیتی معتبر را از یک سرویسدهنده و یا 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}
پس از نصب فایلهای .pfx را به دلایل امنیتی حذف کنید:
PS C:\ZAGRIO> $Servers | Foreach-Object {Remove-Item -Path "\\$_\c$\remote.Company.loc.pfx"}
PS C:\ZAGRIO> Invoke-Command -Session $Sessions {Import-Module WebAdministration}
PS C:\ZAGRIO> Invoke-Command -Session $Sessions {$cert = Get-ChildItem -Path Cert:\LocalMachine\My | Where {$_.subject -like "*company*"} | Select-Object -ExpandProperty Thumbprint}
PS C:\ZAGRIO> Invoke-command -Session $Sessions {Remove-Item -Path IIS:\SslBindings\0.0.0.0!8172}
PS C:\ZAGRIO> Invoke-Command -Session $Sessions {Get-Item -Path "cert:\localmachine\my\$cert" | New-Item -Path IIS:\SslBindings\0.0.0.0!8172}
۶- اتصال به سرور از طریق IIS Manager
پایان