如何确保我们使用的是PowerShell 2.0?

我们正在为客户提供只能在Powershell 2.0中工作的脚本。

通过命令,我们可以确保PowerShell 2.0安装如下

$version = Get-host | Select-object Version

但是,如果我们提供脚本如何确保他们从Powershell 2.0执行它?

在执行脚本时,PowerShell 2.0功能可能会在启动脚本时给脚本提供错误。不是吗?


您可以使用#requires注释您的脚本,并声明它不应在比PowerShell v2更低的任何内容上运行:

#requires -Version 2.0

(注意:即使你隐约知道它存在,这也很难找到。)


依赖主机版本并不是最安全的事情,因为脚本可以在没有与PowerShell版本相同的主机版本的主机上运行。

$ PSVersionTable变量添加到v2中。 你可以检查变量是否存在,如果你运行的是v2或更高版本,你也可以检查PSVersion.Major属性:

if($PSVersionTable)
{
    'PowerShell {0}' -f $PSVersionTable.PSVersion.Major
}
else
{
   'PowerShell 1'
}

我会做这样的事情:

# get version
$ver = $PsVersionTable.psversion.major
 # Check to see if it's V2

If ($ver -NE 2) 
   {"incorrect version - exiting; return}
# Everything that follows is V2

希望这可以帮助!

链接地址: http://www.djcxy.com/p/29011.html

上一篇: How to ensure that we are using powershell 2.0?

下一篇: PsSnapin WebAdministration in Windows7