※この記事は「2021年4月20日」に更新しました。
PowerShell(パワーシェル)講座です。
前回は、外部プログラムを実行する方法について、紹介しました。
今回は、実行ポリシーについてです。
スクリプトを実行するために必要な知識です。
環境は、Windows 10(64bit)、PowerShell 6.1.2 です。
実行ポリシーについて
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
- コンピュータのすべてのユーザー
最後に
いかがでしょうか。
コマンドプロンプトと比較すると、少し面倒に感じるかもしれませんが、慣れると問題ないかと思います。
強力なスクリプトなので、セキュリティは大切です。