我希望使用PowerShell脚本来自动执行某些操作。我通过右键单击并选择“使用PowerShell运行”来运行它。
我在32位和64位PowerShell中都运行了Set-ExecutionPolicy Bypass
,并使用Get-ExecutionPolicy
进行了验证。
但是,我每次重启后第一次尝试运行脚本时,都会收到此提示:
Execution Policy Change
The execution policy helps protect you from scripts that you do not trust. Changing the execution policy might expose
you to the security risks described in the about_Execution_Policies help topic at
http://go.microsoft.com/fwlink/?LinkID=135170. Do you want to change the execution policy?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"):
如果我只是关闭PowerShell窗口并再次运行它,则没有提示。无论我是在提示符中输入Y
还是N
,脚本都会运行。
脚本中没有什么好笑的,只有echo "Test"
。同样的事情发生在三台不同的计算机上,Win 8.1,Win 10和虚拟化的Win 10.所有这些都有PowerShell 5.0。
我做错了什么?我怎样才能摆脱这个提示?
答案 0 :(得分:0)
听起来这可能是来自远程计算机,我的猜测是该策略可能设置为RemoteSigned
或Unrestricted
,并且文件来自互联网。在这种情况下,您可以使用文件上的“属性”对话框,使用Unblock-File
cmdlet来解除阻止文件(此cmdlet在运行时是强制交互的),也可以将脚本内容复制到另一个文件并保存在本地
我相信,设置Bypass
(或任何其他执行策略)只会使您了解本地或组策略设置的最低策略级别(如果已设置)。例如,如果您有一个将执行策略设置为RemoteSigned
的组策略,但是指定了Bypass
,则权限边界在RemoteSigned
处停止,您会受到该执行策略的限制。