Powershell执行策略受限,但仅在通过Python运行时
我有一台运行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显示“此系统禁用了脚本的执行。”