我一直试图在pycharm的windows上运行powershell作为我的终端,所以我做了以下事情:
然而,当我尝试这个时,它说它无法执行我的脚本,因此我收到以下错误:SecurityError
和完全合格的ID为:UnAuthorizedAccess
。
这是因为pycharm的终端无法执行我的Powershell_profile.ps1
配置文件。
如何使用Powershell成功运行Pycharm的终端?
到目前为止我尝试过的是进入我的主要powershell目录,如%windir%/system32/WindowsPowerShell/1.0/profile.ps1
中所示,然后将其更改为包含以下内容:
Set-ExecutionPolicy Unrestricted
然而,这没有帮助,当我尝试打开pycharm的终端时,我得到了同样的错误。
我还尝试将pycharm作为Admin运行,但是这也没有解决问题,而且我得到相同的上述错误。
答案 0 :(得分:25)
我已经用powershell.exe以更简单的方式替换了cmd.exe,并希望它可以提供帮助。 我正在使用webstorm2017和Win10 os。
1.找到powershell.exe
的确切位置。在我的情况下,我相信大多数计算机的位置都是C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
。将整个路径复制到剪贴板中。
2.在您的IDE中打开File => Setting => Tools => Terminal,并将路径粘贴到“Shell路径”空白处。
3.重新启动IDE,一切都会好的。
答案 1 :(得分:19)
Set-ExecutionPolicy Unrestricted -Scope CurrentUser
答案 2 :(得分:9)
浏览到PowerShell可执行文件,右键单击,以管理员身份运行。
在提示符下,使用您尝试的相同命令:
Set-ExecutionPolicy Unrestricted
完成后,关闭PowerShell,并尝试再次从您的应用程序中使用它。
注意:强> 您无法从脚本设置执行策略,因为默认执行策略会阻止您运行脚本。 (即使它是配置文件脚本 - 仍然是脚本)
答案 3 :(得分:5)
我在IntelliJ中更新了powershell.exe路径 - >设置 - >终端
在管理员模式下打开了powershell实例。
已执行Set-ExecutionPolicy Unrestricted -Scope CurrentUser
重启IntelliJ并解决了问题。
第3步来自ebelanger's answer。
答案 4 :(得分:4)
在Default Shell TextBox中,您可以附加执行策略命令行选项,如下所示:
powershell.exe -Executionpolicy Unrestricted
答案 5 :(得分:3)
如果您在Windows 8 x64上运行,则运行以下两个命令可能会有所帮助。它对我有用。
Set-ExecutionPolicy Unrestricted
start-job { Set-ExecutionPolicy Unrestricted -Force } -RunAs32
感谢此处发表的评论: Powershell on Windows 7: Set-ExecutionPolicy for regular users
答案 6 :(得分:1)
如其他答案中所述,如果在IntelliJ→设置→工具→终端→Shell路径中将powershell.exe
设置为您的极限后会抛出UnAuthorizedAccess
错误,解决此问题的正常方法是更改执行策略:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
请注意Unrestricted
级别是最不安全的,并且您通常可以使用RemoteSigned
来禁用从网上下载的未签名脚本,直到您手动删除{{1}来自他们的Internet
Intranet
,通常在文件属性中使用解锁按钮。
但是,当您无法更改执行政策时,您可能会遇到困难。通常是因为Active Directory中的公司安全设置。在PowerShell中,它对应于范围Zone.Identifier
和MachinePolicy
。这种情况的主要症状是以下消息:
Set-ExecutionPolicy:Windows PowerShell更新了您的执行策略 成功,但该设置被a定义的策略覆盖 更具体的范围。由于覆盖,你的shell将保留它 AllSigned的当前有效执行策略。类型 " Get-ExecutionPolicy -List"查看执行策略设置。 有关详细信息,请参阅" Get-Help Set-ExecutionPolicy"。
您无法使用PowerShell或gpedit.msc在此作用域中设置执行策略。尝试直接在注册表中更改此设置也无效:它们在重新启动或登录时应用,但同时又从Active Directory重新导入。但是,虽然您无法全部运行任意PowerShell脚本,但只能手动修改的配置文件和其他本地脚本there's still a solution:
在PowerShell中运行以下命令以创建ceritificate文件root.pvk和root.cer - 它将要求您定义然后确认证书的密码:
UserPolicy
在同一文件夹中,运行以下命令将生成的证书文件导入为自签名证书 - 它将询问您在上面定义的密码:
makecert -n "CN=PowerShell Local Certificate Root" -a sha1 -eku 1.3.6.1.5.5.7.3.3 -r -sv root.pvk root.cer -ss Root -sr localMachine
使用以下命令对您的个人资料脚本进行签名:
makecert -pe -n "CN=PowerShell User" -ss MY -a sha1 -eku 1.3.6.1.5.5.7.3.3 -iv root.pvk -ic root.cer
首次运行使用自我证书签名的脚本时,PowerShell会询问您是否信任证书:
文件[脚本路径]由CN = PowerShell User发布。您的系统不信任此发布者。仅运行受信任发布者的脚本。
[V]从不运行[D]不运行[R]运行一次[A]始终运行[?]帮助(默认为" D")
回答Set-AuthenticodeSignature "[script path]" @(Get-ChildItem cert:\CurrentUser\My -codesign)[0]
以始终运行自签名证书。
现在您的个人资料脚本不会导致任何错误。但请注意,签署证书会在包含其哈希的脚本末尾添加签名块。如果您要修改脚本,请删除该块,并在完成编辑脚本后,重复步骤3重新签名。
答案 7 :(得分:0)
答案 8 :(得分:0)
截至撰写本文时(2018-9-20),here现在提供了一个PowerShell插件。
我已在PyCharm v2018.2.3(专业版)中安装了v1.1,它的工作原理似乎很吸引人,没有双关语。
此插件提供PS1脚本的Intellisense类型支持以及集成的PowerShell终端。为了打开终端,请转到工具> PowerShell控制台...
为了使它正常工作,似乎不需要为任何种类的设置或权限而烦恼。可以。
答案 9 :(得分:0)
您只需要在Shell路径输入中编写powershell
,就像在镜像中一样,您也可以看到jetBrains documentation并配置所需的任何Shell。
powershell configuration
答案 10 :(得分:0)
指定默认情况下将运行的外壳。以下是一些不同外壳的示例:
重击:/ bin / bash
Z shell:/ bin / zsh
Windows版Bash:bash.exe
WSL:wsl.exe
PowerShell:powershell
命令提示符:cmd.exe
Cygwin:“ C:\ cygwin \ bin \ bash.exe” --login -i
有关更多信息:https://www.jetbrains.com/help/webstorm/settings-tools-terminal.html