1

我正在尝试在 powershell 中执行 IIS 操作。我们的客户可能拥有 windows 2008 R2 或 Sp2。

不幸的是,在 Windows 2008 Sp2 中,Webadministration 是一个管理单元,而在 R2 中,它是一个模块。

如果我们的脚本要在生产环境的 diff 服务器中使用,如何确保我们的脚本不会在其中一台机器上中断?

4

1 回答 1

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
} 
于 2012-05-07T09:57:58.993 回答