在Visual Studio代码中,我试图从命令行执行script.bat,但出现以下错误:
文件C:\ Theses_Repo \ train-cnn \ environment \ Scripts \ activate.ps1无法加载,因为此系统上的运行脚本已禁用。
阅读this后,我试图以管理员模式运行Visual Studio代码,以为问题出在特权上。但是无论如何都会抛出错误。
答案 0 :(得分:26)
面对同样的问题,这对我有用。 以管理员身份打开PowerShell并将其粘贴。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
答案 1 :(得分:22)
从Visual Studio Code处理此问题的最简单方法是将powerShell更改为cmd(假设没有理由在您的情况下使用powershell)。为此,请执行以下几个步骤:
我在当前答案中没有找到这样的解决方案。希望有帮助!
答案 2 :(得分:13)
问题是 PowerShell 默认限制运行脚本,除非我们更改 execution policies。
我们可以通过添加 -ExecutionPolicy Bypass
参数来更改执行策略。在 vscode 中,您必须通过在 settings.json 中添加以下内容(ctrl + shift + p 并输入“settings.json”)来创建带有这些参数的 shell 配置文件
"terminal.integrated.profiles.windows": {
"PowerShell": {
"source": "PowerShell",
"icon": "terminal-powershell",
"args": ["-ExecutionPolicy", "Bypass"]
}
},
"terminal.integrated.defaultProfile.windows": "PowerShell",
注意:terminal.integrated.shellArgs
设置已deprecated。
答案 3 :(得分:12)
打开VS代码
文件->首选项->设置
在搜索栏中->搜索“ terminal.integrated.shellArgs”
单击Terminal上的“在setting.json中编辑”> integrated> ShellArgs>窗口[无论您使用什么操作系统,请选择相应的设置]
在json文件的顶部添加以下内容:
terminal.integrated.shellArgs.windows”:[“ -ExecutionPolicy”,“绕过”]
例如,添加json后,可能会像这样:
{ "terminal.integrated.shellArgs.windows": ["-ExecutionPolicy", "Bypass"], "git.autofetch": true, "peacock.favoriteColors": [ { "name": "Angular Red", "value": "#b52e31" }, { "name": "Auth0 Orange", "value": "#eb5424" },
答案 4 :(得分:9)
运行以下命令即可解决问题。
set-ExecutionPolicy RemoteSigned -Scope CurrentUser
(我只在 windows 下试过)
答案 5 :(得分:7)
我以管理员身份打开VS Code,并在终端中运行以下命令:
Set-ExecutionPolicy Unrestricted
它使我可以无错误地运行脚本。
答案 6 :(得分:4)
在 JSON 文件的顶部添加:
"terminal.integrated.defaultProfile.windows": "PowerShell",
"terminal.integrated.profiles.windows": {
"PowerShell": {
"source": "PowerShell",
"args": [
"-ExecutionPolicy",
"Bypass"
]
}
},
注意:不推荐使用以下设置行:
"terminal.integrated.shellArgs.windows": ["-ExecutionPolicy", "Bypass"]
答案 7 :(得分:3)
按下键盘上的 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/
答案 8 :(得分:3)
解决问题的步骤,
Get-ExecutionPolicy -List
Set-ExecutionPolicy -Scope CurrentUser Unrestricted
答案 9 :(得分:3)
出于安全原因,如果您与其他用户共享计算机,请使用: PowerShell:
Set-ExecutionPolicy-范围CurrentUser不受限制
不需要管理员权限。
答案 10 :(得分:2)
以下是解决此问题的方法,
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
答案 11 :(得分:1)
如果您不需要在PowerShell上显式运行它,那么您可能想尝试在命令提示符下运行它。
只需键入cmd
,然后按Enter。这样做将在当前终端窗口中打开命令提示符。它的行为与普通命令提示符相同。
答案 12 :(得分:1)
以ADMIN身份运行VS代码。
这修复了我在家用PC上运行ng new my-App的问题,该问题在我首次从安装过程中打开VS-Code时产生了此错误。
答案 13 :(得分:0)
我的 Visual Studio 2019(版本 16.8.4)出现此错误。 最后我找到了解决方案: EnableScripts(从 PowerShell 操作系统窗口制作(来自 Windows 10 的注册表编辑器)
如下浏览 PowerShell 并使 0 => 1,就是这样。
答案 14 :(得分:0)
由于Windows的安全性,我在Windows 10中遇到了相同的问题: 该解决方案非常简单: 转到Windows Power Shell> Set-ExecutionPolicy -ExecutionPolicy不受限制 然后输入Y并输入
答案 15 :(得分:0)
为更简单起见,除了里卡多的答案外,我还想添加vs代码设置路径。您可以这样获得它:
文件->首选项->设置,然后在搜索栏中输入“自动化”。
然后,通过查看操作系统输入“在settings.json中编辑”。
最后,在括号中添加以下b / n:
"terminal.integrated.shellArgs.windows": ["-ExecutionPolicy", "Bypass"]
答案 16 :(得分:0)
这不是特定于VSCode的问题,它是一个操作系统。 有不同级别的计算机,用户,进程允许运行PowerShell脚本,并且必须将其启用。
如果这是您的计算机,只需将执行策略更改为RemoteSigned或不受限制,即可应用于整个系统。如果只想在VSCode中使用它,请更改设置文件或更改快捷方式以包含要使用的执行策略。该建议是RemoteSigned。这意味着所有本地代码都将运行,但是任何远程脚本都必须签名。
如果这是公司计算机,其“执行”设置为“受限制”,则在更改该设置之前不会运行任何代码。您仍然可以通过在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这样的东西。 (恢复生产事件)
答案 17 :(得分:0)
Win10 用户
在 Visual Studio Code 中:文件 -> 首选项 -> 设置
输入搜索:terminal.integrated.defaultProfile.windows
点击“在 setting.json 中编辑”
添加:
“terminal.integrated.profiles.windows”:{ “电源外壳”: { “小路” : [ “${env:windir}\System32\WindowsPowerShell\v1.0\powershell.exe” ], "source": "PowerShell", "icon": "终端-powershell", “参数”:[ "-NoLogo", "-执行策略", “旁路”] } }, "terminal.integrated.defaultProfile.windows": "PowerShell",
保存并重启 Visual Studio Code
答案 18 :(得分:0)
在撕掉我的头发后,这就是我最终要做的。我没有使用 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"
答案 19 :(得分:0)
我发现here可以将以下内容添加到visual studio code settings中,问题将消失:
_openDialog() {
var d = this.$.dialog;
var upload = this.$.responseDemo;
upload.addEventListener('upload-response', function(event) {
var results = JSON.parse(event.detail.xhr.response);
console.log('upload xhr after server response: ', event.detail.xhr);
if (results.errorResponse) {
event.detail.file.messages = [{'type': 'fatal', 'message': results.errorResponse.message }];
} else {
if (results[0].responseFilename) {
event.detail.file.responseFilename = results[0].responseFilename;
event.detail.file.location = results[0].location;
if (results[0].messages.length) {
event.detail.file.messages = results[0].messages;
}
}
}
});
this.$.dialog.open();
}
原因是,在构建命令行集成(如Visual Studio代码)时,您需要自行设置命令行策略。通过设置以上配置,Visual Studio代码将为您完成此任务。
(阅读this可以更好地理解命令行策略)