我可以在安装了 PowerShell 脚本版本 2.0 的 Windows Server 上运行 PowerShell 脚本版本 4.0 吗?我已经在本地服务器上使用 PowerShell 版本 4.0 开发了脚本。现在我想在安装了 PowerShell 版本 2.0 的开发 Windows 服务器上测试此脚本。这个 4.0 脚本可以在安装了脚本版本 2.0 的开发服务器中运行吗?
答案1
是的,只要您使用版本 2 中提供的功能、cmdlet 等。
答案2
如果不知道您正在使用哪些命令、函数和操作符,我们就无法确定。
PowerShell 脚本文件 (*.ps1) 将尝试在任何版本的 PowerShell 上执行。它是否有效取决于其中引用的内容。
以下是 PowerShell 版本中引入的、早期版本中不存在或工作方式不同的内容的列表:https://technet.microsoft.com/en-gb/library/hh857339.aspx
如果您引用此列表中任何不受支持的内容,您将需要寻找其他解决方法。
答案3
实际上,您可以在任何安装了 PowerShell 的系统上运行任何 PowerShell 脚本,除非以下两个条件之一成立:
您的 ExecutionPolicy 设置不正确,您无法运行任何脚本,例如当它设置为“AllSigned”并且您的脚本未签名时
脚本的作者设置了一条
#requires
声明,例如#requires -version 4
您只能在特定版本或更高版本中运行该脚本。
否则,运行任何脚本都是可能的,但如果脚本的作者使用了早期版本中没有的 cmdlet、参数或别名,则脚本可能无法执行您想要的操作并抛出/写入错误。这就是为什么作者应该始终设置一个#requires
语句