1
我想在PowerShell中執行IIS操作。我們的客戶可能有Windows 2008 R2或Sp2。在生產環境中添加snapin/Import模塊的準則是什麼?
不幸的是,在Windows 2008 Sp2中,Webadministration是一個管理單元,而在R2中它是一個模塊。
如果我們的腳本是在生產環境中的diff服務器中使用的,如何確保我們的腳本不會在一臺機器中崩潰?
我想在PowerShell中執行IIS操作。我們的客戶可能有Windows 2008 R2或Sp2。在生產環境中添加snapin/Import模塊的準則是什麼?
不幸的是,在Windows 2008 Sp2中,Webadministration是一個管理單元,而在R2中它是一個模塊。
如果我們的腳本是在生產環境中的diff服務器中使用的,如何確保我們的腳本不會在一臺機器中崩潰?
您可以測試pssnapin存在:
if ([bool]((Get-PSSnapin -Registered) -match 'Webadministration'))
{
add-pssnapin Webadministration
}
else
{
import-module Webadministration
}
還可以測試模塊是否存在:
[bool]((get-module -ListAvailable) -match "Webadministration")
,也可以使用WMI測試OS:
(gwmi Win32_OperatingSystem).caption
並基於標題值添加pssnapin或mudule
編輯:
快捷的方式:
if (!(import-module Webadministration -ea silentlycontinue) #on error return $false
{
add-pssnapin Webadministration
}
更簡單的方法來獲得OS版本:'[環境] :: OSVersion.Version'其中6.0→VISTA/2o08和6.1→Win7的/ 2008R2。 – Richard