web-dev-qa-db-ja.com

IntelliJでPowershellを端末として使用するIDEA PyCharm、PHPStorm、RubyMineなどのIDE

私はpycharmのwindowsでpowershellをターミナルとして実行しようとしているので、次のことをしました:

enter image description here

ただし、これを試みると、スクリプトを実行できないと表示されるため、次のエラーが表示されます。SecurityErrorおよび完全修飾IDはUnAuthorizedAccessです。

これは、pycharmの端末がPowershell_profile.ps1プロファイルファイルを実行できないという事実から生じます。

PowershellでPycharmのターミナルを正常に実行するにはどうすればよいですか?

これまで試してきたことは、%windir%/system32/WindowsPowerShell/1.0/profile.ps1のようにメインのpowershellディレクトリに移動してから、次のように変更します。

Set-ExecutionPolicy Unrestricted

しかし、これは役に立ちません。pycharmのターミナルを開こうとすると、同じエラーが表示されます。

また、管理者としてpycharmを実行しようとしましたが、これでも問題は解決せず、前述のsameエラーが発生します。

37
Games Brainiac

Cmd.exeをより簡単な方法でpowershell.exeに置き換えました。 webstorm2017とWin10 OSを使用しています。

1. powershell.exeの正確な場所を見つけます。私の場合、ほとんどのコンピューターではC:\Windows\System32\WindowsPowerShell\v1.0\powershell.exeになると思います。パス全体をクリップボードにコピーします。

2。IDE Open File => Setting => Tools => Terminalで、パスを「シェルパス」の空白に貼り付けます。

3. IDEを再起動すると、すべてが正常になります。

30
Halt
Set-ExecutionPolicy Unrestricted -Scope CurrentUser
19
ebelanger

PowerShell実行可能ファイルを参照し、右クリックして管理者として実行します。

プロンプトから、試したのと同じコマンドを使用します。

Set-ExecutionPolicy Unrestricted

それが完了したら、PowerShellを閉じて、アプリケーションから再度使用を試みます。

注:デフォルトの実行ポリシーではスクリプトを実行できないため、スクリプトから実行ポリシーを設定することはできません。 (たとえそれがプロファイルスクリプトであっても-まだスクリプトです)

9
Calvin Allen
  1. IntelliJ->設定->ターミナルでpowershell.exeのパスを更新しました

  2. 管理者モードでpowershellインスタンスを開きました。

  3. 実行済みSet-ExecutionPolicy Unrestricted -Scope CurrentUser

  4. IntelliJを再起動し、問題は解決しました。

ステップ3は ebelangerの答え からのものです。

Screenshot of application settings. Shows the Shell path, the Tab name (Local), and all the options below are checked.

5
John

Default Shell TextBoxでは、次のように実行ポリシーのコマンドラインオプションを追加できます。

powershell.exe -Executionpolicy Unrestricted

4
akwebb1

Windows 8 x64で実行している場合、以下の両方のコマンドを実行すると役立つ場合があります。それは私のために働いた。

Set-ExecutionPolicy Unrestricted
start-job { Set-ExecutionPolicy Unrestricted -Force } -RunAs32

ここにあるコメントの功績: Windows 7のPowershell:一般ユーザー向けのSet-ExecutionPolicy

3
kraihn

他の回答で述べたように、powershell.exe IntelliJでの設定として→設定→ツール→ターミナル→シェルパスがUnAuthorizedAccessエラーをスローします。これを解決する通常の方法は、実行ポリシーを変更することです。

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Unrestrictedレベルは最も安全性が低いことに注意してください。手動でRemoteSignedを削除するまで、Webからダウンロードした署名のないスクリプトを無効にするために、通常Internetを使用できます。またはIntranetZone.Identifierから、通常はファイルプロパティの[ロック解除]ボタンで。

ただし、実行ポリシーを変更できない場合があります。通常、これは、Active Directoryの企業セキュリティ設定によるものです。 PowerShellでは、これはスコープMachinePolicyおよびUserPolicyに対応します。この状況の主な症状は、次のメッセージです。

Set-ExecutionPolicy:Windows PowerShellは実行ポリシーを正常に更新しましたが、設定はより具体的なスコープで定義されたポリシーによって上書きされます。オーバーライドにより、シェルはAllSignedの現在の有効な実行ポリシーを保持します。 「Get-ExecutionPolicy -List」と入力して、実行ポリシー設定を表示します。詳細については、「Get-Help Set-ExecutionPolicy」を参照してください。

PowerShellまたはgpedit.mscを使用して、このスコープで実行ポリシーを設定することはできません。レジストリでこの設定を直接変更しようとしても効果はありません。再起動またはログイン時に適用されますが、同時にActive Directoryから再インポートされます。ただし、手動でのみ変更されるプロファイルやその他のローカルスクリプトについては、任意のPowerShellスクリプトを随時実行することはできませんが、 まだ解決策はあります

  1. PowerShellで次のコマンドを実行して、証明書ファイルroot.pvkおよびroot.cerを作成します。証明書のパスワードを定義してから確認するように求められます。

    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
    
  2. 同じフォルダーで、次のコマンドを実行して、生成された証明書ファイルを自己署名証明書としてインポートします。上記で定義したパスワードを要求します。

    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
    
  3. 次のコマンドを使用してプロファイルスクリプトに署名します。

    Set-AuthenticodeSignature "[script path]" @(Get-ChildItem cert:\CurrentUser\My -codesign)[0]
    
  4. 自己証明書で初めて署名されたスクリプトを実行するとき、PowerShellは次のように証明書の信頼について尋ねます。

    ファイル[スクリプトパス]はCN = PowerShellユーザーによって公開されます。この発行元はシステムで信頼されていません。信頼できる発行元からのスクリプトのみを実行してください。

    [V]実行しない[D]実行しない[R]一度実行する[A]常に実行する[?]ヘルプ(デフォルトは「D」)

    常に自己署名証明書を実行するには、Aと答えてください。

これで、プロファイルスクリプトでエラーが発生しなくなりました。ただし、証明書に署名すると、そのハッシュを含むスクリプトの最後に署名ブロックが追加されることに注意してください。スクリプトを変更しようとしている場合は、そのブロックを削除し、スクリプトの編集が完了したら、手順3を繰り返して再度署名します。

1
P. Frolov

この記事の執筆時点(2018-9-20)では、PowerShellプラグインが利用可能になりました here

私はPyCharm v2018.2.3(Professional)にv1.1をインストールしました。

このプラグインは、PS1スクリプトのIntellisenseタイプのサポートと、統合されたPowerShellターミナルを提供します。ターミナルを開くには、[ツール]> [PowerShellコンソール...]に移動します。

動作させるために、あらゆる種類の設定や許可をいじる必要はないようです。それはちょうど動作します。

1
John Dibling

Windows 10上のWebStormおよびPowerShell 6+の場合このスクリーンショットに従って、デフォルトのcmd.exeを設定からpwsh.exeに変更します。最後にIDEを再起動します。できた!

enter image description here

0
sybozz