1
我想在PowerShell中执行IIS操作。我们的客户可能有Windows 2008 R2或Sp2。在生产环境中添加snapin/Import模块的准则是什么?
不幸的是,在Windows 2008 Sp2中,Webadministration是一个管理单元,而在R2中它是一个模块。
如果我们的脚本是在生产环境中的diff服务器中使用的,如何确保我们的脚本不会在一台机器中崩溃?
我想在PowerShell中执行IIS操作。我们的客户可能有Windows 2008 R2或Sp2。在生产环境中添加snapin/Import模块的准则是什么?
不幸的是,在Windows 2008 Sp2中,Webadministration是一个管理单元,而在R2中它是一个模块。
如果我们的脚本是在生产环境中的diff服务器中使用的,如何确保我们的脚本不会在一台机器中崩溃?
您可以测试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
}
更简单的方法来获得OS版本:'[环境] :: OSVersion.Version'其中6.0→VISTA/2o08和6.1→Win7的/ 2008R2。 – Richard