Windows 11 (または 10) では、デフォルトで、PowerShell でスクリプトを実行しようとすると、「このシステムではスクリプトの実行が無効になっているため、読み込めません」というエラー メッセージが表示されて失敗します。これは、PowerShell には「実行ポリシー」セキュリティ機能が付属しており、構成ファイルの読み込み方法とスクリプトの実行方法を制御して、悪意のあるコードがシステム上で実行されるのを防ぐためです。
Windows 11 (または 10) でスクリプトを実行する必要がある場合は、ローカル コンピューター、現在のユーザー、またはセッションの実行ポリシーを変更できます。
ローカル コンピューターと現在のユーザーに対して PowerShell 実行ポリシーを設定すると、情報がレジストリに格納されます。特定のセッションにポリシーを設定すると、ポリシーはメモリに保持され、セッションを閉じると失われます。
Microsoftによると、実行ポリシーはアクションを制限しません。コマンドライン インターフェイス (CLI) でスクリプトを入力することにより、いつでもポリシーをバイパスできます。実行ポリシーは、ユーザーが悪意のあるスクリプトの実行を防止できるように設計されています。
このガイドでは、実行ポリシーを変更して、Windows 11 または 10 の PowerShell でスクリプトを正常に実行する方法について説明します。
PowerShell の実行ポリシーを変更する
PowerShell の実行ポリシーを変更して Windows 11 (または 10) でスクリプトを正常に実行するには、次の手順を使用します。
-
スタート を開きます。
-
PowerShellを検索し、一番上の結果を右クリックして、[管理者として実行] オプションを選択します。
-
次のコマンドを入力して現在の実行ポリシーを確認し、Enterを押します。
Get-ExecutionPolicy
-
(オプション) 次のコマンドを入力して、有効な PowerShell 実行ポリシーを表示し、Enterを押します。
Get-ExecutionPolicy -List
-
次のコマンドを入力してスクリプトの実行を許可し、Enterを押します。
Set-ExecutionPolicy RemoteSigned
-
(オプション) 次のコマンドを入力してスクリプトが実行されないようにし、Enterを押します。
Set-ExecutionPolicy 制限あり

手順を完了すると、スクリプトをもう一度実行できるようになり、Windows 11 で正常に実行されるようになります。コンピューターでのスクリプトの実行を許可しない場合は、手順に記載されているオプションのコマンドを実行できます。
現在のユーザーまたはローカル コンピューターに対してスクリプトを実行するように実行ポリシーを変更する場合は、次のように「スコープ」オプションを使用する必要があります:Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUserまたはSet-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine.
Windows 11 では、4 つの異なる実行ポリシーから選択して、スクリプトを許可または拒否できます。
- 制限 —スクリプトの実行をブロックします。
- RemoteSigned —コンピューター上で作成されたスクリプトを許可します。ただし、別のデバイスで作成されたスクリプトは、信頼できる署名がない限り実行されません。
- AllSigned —すべてのスクリプトの実行を許可します。ただし、信頼できる発行元が署名を含めている場合に限ります。
- 制限なし—スクリプトを制限なしで実行します。
必要なパラメーターがなく、出力を返さないスクリプトを実行する必要がある場合は、実行ポリシーを変更する必要はありません。代わりに、PowerShell.exe -File "FILENAME" -ExecutionPolicyBypass コマンドを使用して制限をバイパスできます。