【发布时间】:2018-11-21 17:53:40
【问题描述】:
我的环境中的执行策略是AllSigned:
当我尝试执行不受信任的脚本时,它会抛出错误:
& : 无法加载文件 C:\temp\anz.ps1。文件 C:\temp\any.ps1 不是 数字签名。 您不能在当前系统上运行此脚本。有关更多信息 运行脚本和设置执行策略,参见 about_Execution_Policies at http://go.microsoft.com/fwlink/?LinkID=135170。 在行:1 字符:3 + & .\any.ps1 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : SecurityError: (:) [], PSSecurityException + FullyQualifiedErrorId : 未授权访问如何让 PowerShell 提示我是否要执行脚本?
类似:
安全警告
仅运行您信任的脚本。虽然来自 Internet 的脚本很有用,但此脚本可能会损害您的计算机。你想运行 .\temp.ps1 吗?
[D] 不要运行 [R] 运行一次 [S] 暂停:
注意:我不想绕过或抑制提示。
【问题讨论】:
-
执行策略的选项有限,请参阅about_execution_policies。您无法构建自定义策略,因此您必须选择最适合您的选项。
-
请注意,拥有数字签名并不能使脚本安全。 “我要选择是否运行这个从网上下载的脚本”和“我要选择运行这个未签名的脚本”不是一回事。下载的脚本可以签名,本地创建的脚本可能未签名。检测文件是否已下载是可能的,但正如 James 所说,它与执行策略是分开的。
-
感谢您的反馈,1) 我看过一些关于脚本未签名时 PowerShell 提示的帖子:stackoverflow.com/questions/728143/… 2) 目前我创建了一个脚本,该脚本会在其他机器上生成上述错误.
标签: powershell executionpolicy