「Windows 10ミニTips」は各回の作成時点で最新のWindows 10環境を使用しています。

○スクリプトの実行を抑止するWindows 10の設定

Windows PowerShellを起動すると「Execution_Policies」というエラーが発生することがある。実はWindows PowerShellではセキュリティの観点からスクリプトを実行する際の「ExecutionPolicy(実行ポリシー)」を設けている。Windows 10の既定ではスクリプトをRestricted(制限)しているため、個々のコマンドは実行可能だが、スクリプトの実行は許可していない。

スクリプトに関する設定変更は複数用意されている。一番簡単なのは「設定」を使う方法だ。以下の手順を実行すると、CurrentUser(現在のユーザー)の実行ポリシーが、ローカルスクリプトとリモート署名を持つスクリプトを許可するRemoteSigned(リモート署名済み)に変化する。

Windows PowerShellでは、実行ポリシーの範囲をMachinePolicy(グループポリシーによるマシンポリシー)、UserPolicy(グループポリシーによるユーザーポリシー)、Process(プロセス単位: 現在のWindows PowerShellセッションのみ)、CurrentUser(現在のユーザー: 設定をHKEY_CURRENT_USERに格納)、LocalMachine(ローカルマシン: 設定をHKEY_LOCAL_MACHINEに格納)の5段階に定めている。

ローカルマシンよりも現在のユーザー、現在のユーザーよりもプロセス単位の実行ポリシーを優先する仕組みだ。

なお、実行ポリシーとして指定できるのはRemoteSignedの他に、危険なスクリプトも実行できる「AllSigned」、一切ブロックしない「Bypass」、スクリプトにリモート署名を必要とする「RemoteSigned」、未定義状態に戻す「Undefined」、制限を設けないがイントラネットゾーンなどに置かれたスクリプト実行時は警告を発する「Unrestricted」がある。実行ポリシーに関する詳しい情報は公式ドキュメントも合わせて参照してほしい。

著者プロフィール阿久津良和1972年生まれのITライター。PC総合誌やDOS/V専門誌、Windows専門誌など、各PC雑誌の編集部員を経たのちに独立。WindowsとLinuxをこよなく愛しつつ、PC関連の著書を多数手がける。近年はBtoCにとどまらず、BtoBソリューションの取材やインタビューが主戦場。休肝日を設けず日々飲み続けてきたが、γ-GTP値が急激に増加し、早急な対応を求められている。ご連絡は以下のサイト内設置したフォームからお願いいたします。https://www.cactus.ne.jp/