مراحل کار:
۱- برقراری یک ارتباط (Session) با هر سرور
۲- نصب IIS Management Service
۳- فعالسازی IIS Management Service
۴- استارت سرویس WMSVC
۵- جایگزینی گواهینامه امنیتی Self-Signed
۶- اتصال از طریق IIS Manager
۱- تعریف PowerShell Remoting برای Web Server ها برای مدیریت IIS
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
به صورت پیشفرض سرویس مدیریت 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}
در این مرحله شما امکان اتصال به سرویس فوق را از طریق سیستم دیگری خواهید داشت. اگر تمایل به جایگزین نمودن گواهینامه امنیتی دارید (عموما مشکلی وجود ندارد) میتوانید با استفاده از دستورات زیر گواهینامه امنیتی را جایگزین نمائید.
۵- جایگزین کردن گواهینامه امنیتی برای مدیریت IIS
شما میتوانید یک گواهینامه امنیتی معتبر را از یک سرویسدهنده و یا 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}
بدون دیدگاه