2012-05-07 21 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

相关问题