Powershell执行策略受限,但仅在通过Python运行时

1 投票
2 回答
8994 浏览
提问于 2025-04-18 08:46

我有一台运行Windows Server 2008的电脑。我以管理员身份在PowerShell中执行了命令Set-ExecutionPolicy Unrestricted。然后,当我运行powershell Get-ExecutionPolicy时,它返回的结果是Unrestricted。

我创建了一个.bat文件,里面只写了一行代码powershell Get-ExecutionPolicy,这个文件叫test.bat。当我打开命令提示符并运行test.bat时,屏幕上会显示“Unrestricted”。

但是,当我运行下面的Python脚本时,

import subprocess
subprocess.Popen("test.bat")

屏幕上却显示“Restricted”。为什么在Python的subprocess.Popen中运行时,这个设置会有所不同呢?在我另一台Windows 7的电脑上,我按照相同的步骤操作,却没有遇到这个问题。

2 个回答

2

请以管理员身份在PowerShell中运行以下代码:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
1

我找到了答案。这个不受限制的执行策略是针对64位版本的PowerShell的。而Python实际上调用的是32位版本的PowerShell,我之前没有设置过。Windows Server 2008包含了两个版本的PowerShell,但Windows 7没有。

更多细节请查看: PowerShell显示“此系统禁用了脚本的执行。”

撰写回答