PowerShell的互操作性

时间:2013-05-01 03:11:04

标签: windows powershell

我正在分发安装程序,它将打开并运行PowerShell脚本。安装程序将由拥有Windows XP及更高版本的用户使用。

我保证这个脚本会在所有这些版本的Windows上运行/执行吗?我正在寻找批处理文件提供的类似Cross-Windows-Platform互操作性。

我听说过这样的错误:“由于在此系统上禁用了脚本的执行,因此无法加载文件”在这种情况下我该怎么办?如果用户已禁用脚本,这意味着我将需要使用其他语言(可能只是批处理)?

4 个答案:

答案 0 :(得分:2)

您引用的错误是由PowerShell安装时的默认执行策略引起的。该消息表明已安装PowerShell ,但默认情况下,出于安全目的,可能会运行哪些脚本非常受限制。

有关此主题的更多信息,请参阅this article

如果您要在安装程序中使用PowerShell,请将其作为软件系统要求的一部分。我找不到任何明确表示你可以用你的应用程序重新分发PowerShell的东西,但值得向微软询问它。

PowerShell并非“保证”在任何比Win7更早的桌面操作系统上,但是它是通过Microsoft Update分发的,并且没有令人信服的理由让用户安装它。

答案 1 :(得分:2)

如果您管理此环境,请确保在部署脚本之前在XP工作站上安装了PowerShell。还可以选择为powershell配置组策略以启用脚本执行和允许的脚本类型,但这超出了此问题的范围。

如果您没有进入组策略路由,而只是想直接运行脚本,那么在安装程序中,直接调用powershell.exe并传入以下参数:

powershell.exe -executionpolicy bypass -file \\path\to\script

如果脚本路径是本地路径,则它不必是一个unc路径,这只是一个例子。

答案 2 :(得分:0)

不,PowerShell脚本无法保证在Windows XP或Windows Server 2003上运行。虽然这些平台的PowerShell为available,但默认情况下并未安装。

答案 3 :(得分:0)

不,PowerShell脚本可能无法正常工作,因为在Win XP / 2003上没有预先安装PowerShell。

它包含在XP / 2003管理框架中。 对我来说,我建议改用.bat。