Ameba Ownd

アプリで簡単、無料ホームページ作成

なるーらぼ

[tips]現在ログオンしているユーザーのPowerShell実行ポリシーを変更する

2016.02.03 01:38

Windows PowerShellはWindows Vista以降で標準的にインストールされているスクリプト環境です。

コマンドラインから利用するだけなら困りませんが、はじめて利用するときに面食らうのが実行ポリシーの存在です。


実行ポリシーは不用意にコンピュータへ変更をされてしまわないようにするために設けられたもので、標準では自分でつくったスクリプトさえ実行することができません。

また、拡張子が「.ps1」のような特定のファイルしか実行することができないということもあります。

これが原因で「PowerShellって面倒くさいなー」と敬遠しがちです。

しかし、この実行ポリシーは変更することができます。


はいはい、Set-ExecutionPolicyでしょ?管理者権限がないと変更できないよね?

管理者権限なんて仕事のパソコンにはもらえませんよ。


という方が多いかと思います。

でも変更できるんですよ。

方法は2つあります。


1. 起動時にポリシーを指定する

この場合はPowerShellをコマンドプロンプトなどから実行するときに利用することができます。

PowerShellにも起動時に指定することができるオプションがいくつかあります。

例えば、「something.ps1」というスクリプトを実行する場合は次のようにします。

powershell -executionpolicy remotesigned -f .¥samething.ps1


ポイントは「-executionpolicy」オプションです。

このスクリプト実行時だけ明示的に「インターネットからダウンロードしたスクリプトは電子署名付き、ローカルはOK」という指定をしています。


2. ポリシー設定する範囲を指定する

とはいえ、PowerShellを普段つかうコマンドインターフェースにしている方は毎度別のPowerShellを起動しなければならないのは不便ですよね。

そうしたときには「Set-ExecutionPolicy」コマンドレットに「-Scope」というパラメータをつけてあげてください。

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

これで「現在ログオンしているユーザーはRemoteSigned」ということになります。

こうしておくと、PowerShellを終了しても実行ポリシーは保存されているので再度起動したときにもう一度設定しなければならない、ということはありません。