在生产环境中添加snapin / Import模块的准则是什么?

时间:2012-05-07 09:45:03

标签: powershell powershell-v2.0

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

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

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

1 个答案:

答案 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
}