【PowerShell講座】実行ポリシーについて

実行ポリシーについて

※この記事は「2021年4月20日」に更新しました。

PowerShell(パワーシェル)講座です。

前回は、外部プログラムを実行する方法について、紹介しました。

外部プログラムを実行する

【PowerShell講座】外部プログラムを実行する

2020年1月10日

今回は、実行ポリシーについてです。

スクリプトを実行するために必要な知識です。

環境は、Windows 10(64bit)、PowerShell 6.1.2 です。

ぱそた
SE、Web制作、販売を経験した管理人が解説します。



実行ポリシーについて

PowerShell(パワーシェル)は、コマンドプロンプトよりも強力で Windows のほぼ全ての機能を操作できます。

そのため、間違った使い方をすると非常に危険です。

実行ポリシーは、スクリプトを実行するときに、どんなファイルなら実行できるかを示したものです。

Get-ExecutionPolicy について

Get-ExecutionPolicy を使うと、現在設定されている実行ポリシーが確認できます。

それでは、PowerShell を起動して、以下のコマンドレットを実行します。

Get-ExecutionPolicy

以下の内容が表示されました。

RemoteSigned

RemoteSigned は、署名付きスクリプト、ローカル保存の自作スクリプトは実行可能ということです。

実行ポリシーの設定値は以下の通りです。

Restricted
スクリプトの実行を行いません。
AllSigned
署名付きスクリプトは実行できます。
RemoteSigned
署名付きスクリプト、ローカル保存の自作スクリプトは実行できます。
Unrestricted
すべてのスクリプトが実行できます。ただし、インターネットからダウンロードした未署名のスクリプトは実行するかどうか確認を求められる。
ByPass
何もブロックされずに警告もメッセージも表示されません。

Windows PowerShell の実行ポリシー

Windows PowerShell(Windows 8.1、Windows 10)の実行ポリシーは、デフォルトで Restricted になっています。

スクリプトを実行するには、実行ポリシーを変更する必要があります。

Set-ExecutionPolicy について

Set-ExecutionPolicy を使えば、実行ポリシーを変更することができます。

PowerShell 6.1.2(PowerShell Core)であれば、変更する必要はありません。

実行ポリシーの確認

練習で Windows PowerShell で実行ポリシーを変更してみます。

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

メッセージを確認して、Y(はい)を入力します。

再度、Get-ExecutionPolicy を実行しましょう。

実行ポリシーが変更されました。

実行ポリシーの変更

ちなみに、-Scopeオプションの設定値は以下の通りです。

Process
現在の Windows PowerShell プロセス
CurrentUser
現在のユーザー
LocalMachine
コンピュータのすべてのユーザー

最後に

いかがでしょうか。

コマンドプロンプトと比較すると、少し面倒に感じるかもしれませんが、慣れると問題ないかと思います。

強力なスクリプトなので、セキュリティは大切です。