【问题标题】:Visual Studio Code Unsigned Powershell ScriptsVisual Studio Code 未签名的 Powershell 脚本
【发布时间】:2018-04-11 22:29:27
【问题描述】:

我开始使用 Visual Studio Code 编写 Powershell 脚本。我想关闭对未签名代码的检查,但不知道如何执行此操作。我也没有在论坛里找到任何东西。

【问题讨论】:

  • 从 PowerShell 提示符运行命令:help about_Execution_Policies

标签: powershell visual-studio-code


【解决方案1】:

我通过将策略设置为来解决:

Set-ExecutionPolicy –ExecutionPolicy RemoteSigned

到以管理员身份运行的可视化代码集成环境。

下面的博客清楚地列出了解决它的步骤:

http://donovanbrown.com/post/Using-PowerShell-in-VS-Code

【讨论】:

    【解决方案2】:

    您可以通过向 powershell.exe 命令添加参数来调整策略。 为此,打开设置 json 文件。然后添加以下行:

        "terminal.integrated.shellArgs.windows": "-ExecutionPolicy ByPass",
    

    【讨论】:

    • 如果您不需要在 vscode 之外运行脚本,这是最安全的选择
    • 由于问题是关于使用 Visual Studio Code 进行 Powershell 脚本编写,我认为这是最好的答案。
    • 提示:保存更改后需要重启 Visual Studio Code。
    • 在最新版本的 VS Code 中似乎已弃用此设置。
    【解决方案3】:

    PowerShell 的默认设置有助于防止运行恶意脚本。默认情况下,您应该/可以在 VSCode 集成终端上运行脚本。

    要更改 PowerShell 安全设置,请以管理员权限打开 PowerShell 并运行命令:

    Get-ExecutionPolicy -List
    

    你应该得到这样的回应:

            Scope ExecutionPolicy
        ----- ---------------
    MachinePolicy       Undefined
       UserPolicy       Undefined
          Process       Undefined
      CurrentUser       RemoteSigned  
     LocalMachine       AllSigned
    

    CurrentUser 也可能未定义,因为您无法在 VSCode 终端上运行脚本。

    要更改它,请运行以下命令:

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    

    重新打开 VSCode 终端,它现在应该可以工作了。

    如果您想了解更多详细信息,可以在此处找到完整文档:https://docs.microsoft.com/es-es/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7

    【讨论】:

      【解决方案4】:

      您可以使用命令Set-ExecutionPolicy 来更改系统的执行策略。您需要从管理会话中执行此操作。您可以在 PowerShell 提示符下使用命令 help Set-ExecutionPolicy 找到适当的语法。

      您也可以在线查找命令参考,例如SS64Technet

      在 Stack Overflow 上还有一个高度可见的 Q&A,具有相同的信息。

      【讨论】:

      • 我试过了。这是我得到的结果:PS C:\Users\admrschoenhard\Desktop> Set-ExecutionPolicy undefined PS C:\Users\admrschoenhard\Desktop> c:\Users\admrschoenhard\Desktop\Untitled-1.ps1
      • import-module : 文件 \\us.aegon.com\ait\dsst\Powershell\Modules\Bluecat.psm1 无法加载。文件 \\us.aegon.com\ait\dsst\Powershell\Modules\Bluecat.psm1 未进行数字签名。您不能在当前系统上运行此脚本。有关运行脚本和设置执行策略的更多信息,请参阅go.microsoft.com/fwlink/?LinkID=135170 上的 about_Execution_Policies。在 C:\Users\admrschoenhard\Desktop\Untitled-1.ps1:1 char:1 + import-module \\us.aegon.com\ait\dsst\Powershell\Modules\Bluecat.psm1
      • + CategoryInfo : SecurityError: (:) [Import-Module], PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess,Microsoft.PowerShell.Commands.ImportModuleCommand
      • 快速说明 - 当我拉出 import-module 语句时,它允许我将执行策略设置为未定义。只有在尝试导入未签名的模块时,我才会收到无法将策略设置为未签名的错误。
      • 看来我误解了您的意图。禁用未签名脚本是您可以在管理交互式 shell 中执行的操作。我认为如果您可以将其放入任何和所有脚本中,它将破坏该命令的目的。至于 Visual Studio Code,当您尝试使用 PowerShell IDE 时会发生什么?编辑您的问题以包含您现有的代码和输出错误。在cmets这里很痛苦。 Blueshell 看起来像一个专业包,但我无法找到包含 psm1 文件的页面。他们的指导对安装它有什么看法?
      【解决方案5】:

      转到选择默认外壳

      然后选择命令提示符而不是 Windows power shell 它将起作用

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-02-01
        • 1970-01-01
        • 2020-01-02
        • 1970-01-01
        • 2013-05-06
        • 1970-01-01
        • 2021-09-30
        • 2020-06-17
        相关资源
        最近更新 更多