そもそも、PowerShellを実行するには、まずは「実行ポリシー」という権限の設定が必要になります。
現在設定されている実行ポリシーを確認する。
「Get-ExecutionPolicy」コマンドを実行すると、現在設定されている実行ポリシーを確認することができます。
デフォルトだと、「Restricted」が設定されており、この設定は、「全くスクリプトの実行を行えない」という設定になります。
実行ポリシーの種類
実行ポリシー | 説明 |
---|---|
Restricted | 構成ファイルの読み込み、スクリプトの実行を行わない。 |
AllSigned | スクリプトが、信頼された発行元によってデジタル署名されている場合のみに実行します。 |
RemoteSigned | ネットからダウンロードした全てのスクリプトが信頼された発行元によって、デジタル署名されている場合のみに実行します。(要は、自作のスクリプトは全て実行できますよという意味です。) |
Unrestricted | 全てのスクリプトを実行します。(デジタル署名されていないスクリプトの場合は、実行前に確認します。)、要はネット上で他人が作成したスクリプトも実行できますよという意味です。 |
実行ポリシーを設定する。
実行ポリシーを設定するには、「Set-ExecutionPolicy」コマンドを実行します。
ただ、そのまま実行すると、パソコン全体の設定になってしまいます。下記のように指定すれば、現在ログオンしているユーザーのみ、全てのスクリプトを実行できるという実行ポリシーにすることができます。
1 |
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted |
上記コマンドを実行後は、下記のように、実行ポリシーが「Unrestricted」になっていることを確認できます。
そもそも何で、「実行ポリシー」なんてあるの?
背景としては、VBSや、Jscript等のWSH(Windows Scripting Host)にあります。
あれらは、メモ帳等で作成して、拡張子を「.vbs」や「.js」に書き換えるだけで簡単にWidowsを操作できてしまいます。
それと共に、Windowsの普及につれて、悪意のあるプログラムも非常に多く広がってしまいました。(メールや、Webに添付されたものをクリックして被害にあうなんて事件も多発しました。)
その安易に実行されないようにするためにMicrosoftが取った対策が「実行ポリシー」というわけですね。
この記事へのコメントはありません。