有没有办法知道Powershell中的cmdlet版本是为了向后兼容?

时间:2015-10-23 23:37:07

标签: powershell powershell-v2.0 powershell-v3.0

假设您在Powershell 4.0环境中编写脚本,并且希望确保该脚本在Powershell 3.0中有效。你如何确保其向后兼容?。

3 个答案:

答案 0 :(得分:2)

好的问题,因为措辞对你正在寻找的东西更加具体。听起来像是在问requires

  

#Requires语句阻止脚本运行,除非Windows       PowerShell 版本,模块,管理单元以及模块和管理单元版本       满足先决条件。如果不满足先决条件,则为Windows PowerShell       不运行脚本。

这样,在编写脚本时,您可以强制执行脚本的功能版本。

#Requires -Version 3.0

所以现在在构建和调试脚本时,您知道它可以在至少3.0的系统上运行。如果重要的话,它也会识别次要构建。

我最近遇到了满足自己需求的这个要求,并且现在意识到我上面提出的建议不会得到我认为你正在寻找的确切结果。您应该做的是当您运行脚本时调用新的PowerShell会话并使用{em>启动指定版本的Windows PowerShell (TechNet)的-Version开关。

因此,在测试脚本时,请按以下方式运行:

powershell -Version 2 -File myscript.ps1

答案 1 :(得分:0)

这是获取“Get-ChildItem”版本的示例:

(Get-Command Get-ChildItem).Version

答案 2 :(得分:0)

使用所需命令的get-module,您可以像这样:

(Get-Module (Get-Command Get-NetTCPConnection).Source).PowerShellVersion

为澄清起见:

  • (Get-command <your cmdlet>). Source为您提供安装位置