1

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

我是否保证此脚本将在所有这些版本的 Windows 上运行/执行?我正在寻找批处理文件提供的类似的跨 Windows 平台互操作性。

我听说过错误:“无法加载文件,因为在此系统上禁用了脚本的执行”在这种情况下我该怎么办?如果用户禁用了脚本,这是否意味着我需要使用不同的语言(也许只是 Batch)?

4

4 回答 4

2

您引用的错误是由于安装 PowerShell 时的默认执行策略造成的。该消息表明安装 PowerShell,但默认情况下,出于安全目的,它对可以运行的脚本非常有限。

有关该主题的更多信息,请参阅本文

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

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

于 2013-05-01T11:23:38.263 回答
2

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

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

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

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

于 2013-05-01T12:32:59.933 回答
0

不,不保证 PowerShell 脚本可以在 Windows XP 或 Windows Server 2003 上运行。尽管 PowerShell用于这些平台,但默认情况下不安装。

于 2013-05-01T07:44:07.847 回答
0

不,PowerShell 脚本可能不起作用,因为 PowerShell 未预装在 Win XP/2003 上。

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

于 2013-05-01T12:47:14.647 回答