2012-05-07 20 views
1

我想在PowerShell中執行IIS操作。我們的客戶可能有Windows 2008 R2或Sp2。在生產環境中添加snapin/Import模塊的準則是什麼?

不幸的是,在Windows 2008 Sp2中,Webadministration是一個管理單元,而在R2中它是一個模塊。

如果我們的腳本是在生產環境中的diff服務器中使用的,如何確保我們的腳本不會在一臺機器中崩潰?

回答

2

您可以測試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 
} 
+0

更簡單的方法來獲得OS版本:'[環境] :: OSVersion.Version'其中6.0→VISTA/2o08和6.1→Win7的/ 2008R2。 – Richard

相關問題