从 EXE 执行 Powershell 脚本...Executionpolicy RemoteSigend/Unrestricted,仍然失败

从 EXE 执行 Powershell 脚本...Executionpolicy RemoteSigend/Unrestricted,仍然失败

所以我写了一个小型 VB 程序,它运行一个 powershell 脚本。我知道我的 ExecutionPolicy 必须设置为 RemoteSigned 或 Unrestricted 才能在我的计算机上执行脚本。所以我这样做了,但它一直说 ... cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at .. bla bla 通常这个问题可以通过更改 ExecutionPolicy 来解决,但这次不行。可能是因为我从 EXE 中调用 powershell?我不知道。

有什么建议吗?

答案1

好吧,经过无数次尝试后,我意外地找到了解决方案。或者,我最好说......它对我有用。

我使用管理员权限从根目录启动了 powershell.exe。之后我手动加载了 PSReadLine 模块并再次设置了 ExecutionPolicy RemoteSigned

完成这些步骤后,一切都按预期运行。说实话,我现在看不出以管理员权限从开始菜单打开 powershell 和以管理员权限从根目录打开 powershell 有什么区别。但它确实有区别。很有趣。

答案2

尝试按如下方式运行:

powershell.exe -ExecutionPolicy Bypass yourScript.ps1

解释:

来自文档

-执行策略

指定新的执行策略。此参数可接受的值为:

  • 受限。不加载配置文件或运行脚本。受限是默认执行策略。
  • AllSigned。要求所有脚本和配置文件都由受信任的发布者签名,包括您在本地计算机上编写的脚本。
  • RemoteSigned。要求从 Internet 下载的所有脚本和配置文件均由受信任的发布者签名。
  • 不受限制。加载所有配置文件并运行所有脚本。如果您运行从 Internet 下载的未签名脚本,系统会在运行前提示您授予权限。
  • 绕过。没有任何阻止,也没有任何警告或提示。
  • 未定义。从当前范围中删除当前分配的执行策略。此参数不会删除在组策略范围中设置的执行策略。

相关内容