[win]PowerShellでコマンドが弾かれる場合の対処

セキュリティと殴り合おう

どういうあれか

Gitやら何やらをインストールして、いざコマンドを実行すると弾かれる場合がある。PowerShellの再起動で通ることもあるけど、エラーが出っぱなしになるケースがある。インストールし直しても変わらんのだが、なんだこれ、という具合。

原因は権限の問題で、つまりセキュリティーによって弾かれていることがある。

チェックする

コマンドを叩いたらこんな書き出しでエラーが出たとする。

このシステムではスクリプトの実行が無効になっているため…

とりあえずこれを叩いてみる。

Get-ExecutionPolicy -List

こんな感じで出るのではなかろうか。

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined

これを叩く。

Set-ExecutionPolicy RemoteSigned

こんなのが出るので「Y」を入力してエンター。

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies
のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "N"):

またリストを出すと、なんか一行増えてる。

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

弾かれたコマンドを叩いたら今度は動く。

注意

「powershell スクリプト 実行 許可」で調べるとどういうことだという話とか対策とかを紹介した記事が出てくる。ちゃんと自分が何をしようとしてるのか、設定するとどうなっちゃうのかを理解しましょう。

【PowerShell】権限(実行ポリシー)の設定をする。 | プログラミングマガジン
そもそも、PowerShellを実行するには、まずは「実行ポリシー」という権限の設定が必要になります。現在設定されている実行ポリシーを確認する。
PowerShell - 「このシステムではスクリプトの実行が無効になっているため、ファイルを読み込むことができません。」の対処方法
悪意のあるスクリプトの実行を防止するため、初期設定ではスクリプトの実行が禁止されています。解決するには実行ポリシー(ExecutionPolicy) を変更し、スクリプトの実行を許可します。

コメント

タイトルとURLをコピーしました