我正在尝试在PowerShell中执行IIS操作。我们的客户可能拥有Windows 2008 R2或Sp2。
不幸的是,在Windows 2008中,Sp2 Web管理是一个管理,而在R2中,它是一个模块。
如果我们的脚本要在生产环境中的diff服务器中使用,那么如何确保我们的脚本不会在其中一台机器中断?
答案 0 :(得分:2)
您可以测试pssnapin的存在:
if ( [bool]((Get-PSSnapin -Registered) -match 'Webadministration') )
{
add-pssnapin Webadministration
}
else
{
import-module Webadministration
}
您也可以测试模块的存在:
[bool]((get-module -ListAvailable) -match "Webadministration")
或者您可以使用wmi测试操作系统:
(gwmi Win32_OperatingSystem ).caption
并根据标题值添加pssnapin或mudule
编辑:
快捷方式:
if (!(import-module Webadministration -ea silentlycontinue) #on error return $false
{
add-pssnapin Webadministration
}