在 Visual Studio 代码中,我尝试从命令行执行 script.bat,但出现以下错误:
文件 C:\Theses_Repo\train-cnn\environment\Scripts\activate.ps1 无法加载,因为在此系统上禁用了运行脚本。
阅读 this 后,我尝试以管理员模式运行 Visual Studio 代码,认为问题出在权限问题上。但无论如何都会抛出错误。
我发现 here 您可以将以下内容添加到您的 visual studio code settings 中,问题就会消失:对于 Visual Studio 代码设置,请转到文件 ->首选项->设置->扩展 ->向下滚动并找到“在 settings.json 中编辑”。 别忘了重启 Visual Studio 代码
"terminal.integrated.shellArgs.windows": ["-ExecutionPolicy", "Bypass"]
原因是,在构建 Visual Studio 代码等命令行集成时,您需要自行设置命令行策略。通过设置上述配置,Visual Studio 代码将为您完成。
(阅读 this 以更好地理解命令行策略)
2021 年 8 月更新
似乎 terminal.integrated.shellArgs
已被弃用。 This 答案显示了如何在新版本中执行此操作。
问题是 PowerShell 默认限制运行脚本,除非我们更改 execution policies。
我们可以通过添加 -ExecutionPolicy Bypass
参数来更改执行策略。在 vscode 中,您必须通过在 settings.json 中添加以下内容来创建带有这些 args 的 shell 配置文件(ctrl + shift + p 并键入“settings.json”)
"terminal.integrated.profiles.windows": {
"PowerShell": {
"source": "PowerShell",
"icon": "terminal-powershell",
"args": ["-ExecutionPolicy", "Bypass"]
}
},
"terminal.integrated.defaultProfile.windows": "PowerShell",
需要重启 VS Code 和终端。
注意:terminal.integrated.shellArgs
设置为 deprecated。
为了更简单,除了里卡多的答案之外,我还想添加 vs 代码设置路径。你可以像这样得到它:
文件 -> 首选项 -> 设置,然后在搜索栏中输入“自动化”。
之后,通过查看您的操作系统,输入“在 settings.json 中编辑”。
最后,在大括号中添加以下 b/n:
"terminal.integrated.shellArgs.windows": ["-ExecutionPolicy", "Bypass"]
https://i.stack.imgur.com/v41J0.png
从 Visual Studio Code 处理此问题的最简单方法是从 powerShell 更改为 cmd (假设在您的情况下没有理由使用 powershell)。为此,请按照以下几个步骤操作:
Terminal -> New Terminal 在右下角选择“Select Default Shell”选项
https://i.stack.imgur.com/2JdAf.png
选择“命令提示符”
https://i.stack.imgur.com/yqFF9.jpg
我在当前的答案中没有找到这样的解决方案。希望有帮助!
面对同样的问题,这对我有用。以管理员身份打开 PowerShell 并粘贴。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
按键盘上的 Windows 按钮 键入“PowerShell” 右键单击 Windows PowerShell 单击以管理员身份运行 运行以下命令并使用“Y”确认 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
欲了解更多信息:https://www.roelpeters.be/solved-running-scripts-is-disabled-on-this-system-in-powershell/
打开 VS 代码文件 -> 首选项 -> 搜索栏中的设置 -> 搜索“terminal.integrated.shellArgs” 单击终端>集成>ShellArgs > windows的“在setting.json中编辑” [无论你使用什么操作系统,选择相应的设置] 在 json 文件的顶部添加: terminal.integrated.shellArgs.windows": ["-ExecutionPolicy", "Bypass"] 例如,添加 json 后可能如下所示:
"terminal.integrated.shellArgs.windows": ["-ExecutionPolicy", "Bypass"], "git.autofetch": true, "peacock.favoriteColors": [ { "name": "Angular Red", "value" : "#b52e31" }, { "name": "Auth0 Orange", "value": "#eb5424" },
重新启动 VS 代码并再次尝试该命令(在我的情况下,我正在尝试 ng serve)
注意: terminal.integrated.shellArgs 设置已被弃用。
由于 Windows 10 上的安全原因,我遇到了同样的问题。我设法通过在 PowerShell 中运行以下命令来修复它:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
打开VS代码转到文件->首选项->搜索栏中的设置->搜索“terminal.integrated.defaultprofile.windows”单击终端>集成>默认配置文件的“在setting.json中编辑”:Windows [whatever您的操作系统,选择相应的设置]。
在 JSON 文件的顶部添加以下内容:
"terminal.integrated.defaultProfile.windows": "PowerShell",
"terminal.integrated.profiles.windows": {
"PowerShell": {
"source": "PowerShell",
"args": [
"-ExecutionPolicy",
"Bypass"
]
}
},
注意:不推荐使用以下设置行:
"terminal.integrated.shellArgs.windows": ["-ExecutionPolicy", "Bypass"]
我以管理员身份打开 VS Code 并在终端中运行此命令:
Set-ExecutionPolicy Unrestricted
它允许我运行脚本而不会出现错误。
出于安全原因,如果您与其他用户共享计算机,请使用:PowerShell:
Set-ExecutionPolicy -Scope CurrentUser Unrestricted
无需管理员权限。
解决问题的步骤,
在您的计算机中打开 PowerShell(这将更改您的 Windows 计算机上的 PowerShell 执行策略)运行(为您的计算机获取 ExecutionPolicy)
获取执行策略列表
跑
Set-ExecutionPolicy -Scope CurrentUser Unrestricted
对于 Win10 用户
在 Visual Studio 代码中:文件 -> 首选项 -> 设置 在搜索中键入:terminal.integrated.defaultProfile.windows 点击在 setting.json 中的编辑 添加这个:
"terminal.integrated.profiles.windows": {
"PowerShell": {
"path" : [
"${env:windir}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"
],
"source": "PowerShell",
"icon": "terminal-powershell",
"args": [
"-NoLogo",
"-ExecutionPolicy",
"ByPass"]
}
},
"terminal.integrated.defaultProfile.windows": "PowerShell",
保存并重新启动 Visual Studio Code
更改标签位置,步骤:
执行 Ctrl+Shift+P 并键入“设置”,然后选择“首选项:打开设置(JSON)”:然后在“终端.integrated.profiles.windows”中添加“args”:[“-ExecutionPolicy”,“Bypass”] .settings.json 中的“PowerShell”:重启 VS 代码。
如果将来随着 VS 代码更新发生任何变化,可能会有不同的步骤。
以管理员身份运行 VS-Code。
这解决了我在家用 PC 上运行 ng new my-App 的问题,当我第一次从安装过程中打开 VS-Code 时产生了这个错误。
如果您不需要在 PowerShell 上显式运行它,那么您可能需要尝试在命令提示符下运行它。
只需键入 cmd
并按 Enter。这样做将在当前终端窗口中打开命令提示符。它的行为与普通命令提示符相同。
在 settings.json 中添加了这一行
"terminal.integrated.defaultProfile.windows": "PowerShell"
对我来说,在 VS powershell 中使用了以下命令,它开始工作
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
添加此错误消息只是为了将来轻松找到此主题:
ng : File C:\Users\[USER_NAME]\AppData\Roaming\npm\ng.ps1 cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at
https:/go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1
+ ng help
+ ~~
+ CategoryInfo : SecurityError: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
这不是 VSCode 特定的问题,而是操作系统问题。允许 PowerShell 脚本运行的机器、用户和进程有不同的级别,并且必须启用它。
如果这是您的机器,只需将执行策略更改为 RemoteSigned 或不受限制,以便适用于您的整个系统。如果您只想在 VSCode 中使用它,请更改您的设置文件或更改您的快捷方式以包含您要使用的执行策略。建议是远程签名的。这意味着所有本地代码都将运行,但必须对任何远程脚本进行签名。
如果这是一台公司机器,其 Execution 设置为 Restricted,则在更改该设置之前不会运行任何代码。您仍然可以通过在 VSCode 编辑器中选择所有代码并按 F8 来运行代码。现在,如果他们已经强制执行此策略,那么您需要与 IT 时间交谈,让他们为您更改它。
所有这些都在 PowerShell 帮助文件中有详细说明。
Get-Command -Name '*executionpolicy*' | ft -AutoSize
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Get-ExecutionPolicy 3.0.0.0 Microsoft.PowerShell.Security
Cmdlet Set-ExecutionPolicy 3.0.0.0 Microsoft.PowerShell.Security
# get function / cmdlet details
(Get-Command -Name Get-ExecutionPolicy).Parameters
Get-help -Name Get-ExecutionPolicy -Full
Get-help -Name Get-ExecutionPolicy -Online
Get-help -Name Get-ExecutionPolicy -Examples
Get-ExecutionPolicy
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Get-ExecutionPolicy -List
(Get-Command -Name Set-ExecutionPolicy).Parameters
Set-help -Name Set-ExecutionPolicy -Full
Set-help -Name Set-ExecutionPolicy -Online
Set-help -Name Set-ExecutionPolicy -Examples
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Set-ExecutionPolicy -ExecutionPolicy Restricted
Invoke-Command -ComputerName "Server01" -ScriptBlock {Get-ExecutionPolicy} | Set-ExecutionPolicy -Force
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy AllSigned -Force
Get-ExecutionPolicy -List
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Undefined
Set-ExecutionPolicy -Scope Process -ExecutionPolicy AllSigned
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
请注意,如果您的组织正在控制这一点,请再次与他们交谈 before trying to bypass the policy,因为如果他们这样做了,这也意味着他们正在监控它,如果您这样做,就会知道。我见过这样的事情会产生 RPE。 (恢复生产活动)
我的 Visual Studio 2019(版本 16.8.4)中出现此错误。最后我找到了解决方案:EnableScripts (Make from PowerShell os windows (from Registry Editor of windows 10)
如下浏览 PowerShell 并使 0 => 1 就是这样。
https://i.stack.imgur.com/EI4qU.png
https://i.stack.imgur.com/6yv9m.png
https://i.stack.imgur.com/4WniU.png
把头发扯掉后,这就是我最终要做的。我没有使用 CMD 或 PowerShell,而是改用 BASH。在 settings.json 中:
//"terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\cmd.exe",
// "terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
此处的 CMD 和 Powershell 已被注释掉,以防您想返回其中之一。要访问 settings.json:
> File -> Preferences -> Settings -> in search type : "settings.json" ->
> Under [JSON] click "Edit in settings.json"
几分钟前我遇到了同样的问题:我这样做了,它对我有用
您需要编辑您的视觉工作室设置。转到文件 -> 首选项 -> 设置 -> 扩展 -> 向下滚动并找到“在 settings.json 中编辑”。将这些代码粘贴在下面,保存并重新启动 Visual Studio 代码。
{
"terminal.integrated.profiles.windows": {
"PowerShell": {
"source": "PowerShell",
"icon": "terminal-powershell",
"args": ["-ExecutionPolicy", "Bypass"]
}
},
"terminal.integrated.defaultProfile.windows": "PowerShell",
"files.associations": {
"*.html": "html"
},
}
我在尝试使用 pnpm 时遇到了类似的问题。我刚刚将 vs-code 终端更改为 GitBash 而不是 PowerShell,并且它有效。
因为我们是在 2022 年,并且 vdcode 已经改变了在 setting.json 中解决此问题的方式,只需打开终端并运行
Set-ExecutionPolicy -Scope CurrentUser Unrestricted