悪意のあるスクリプトの実行を防止するため、初期設定ではスクリプトの実行が禁止されています。解決するには実行ポリシー(ExecutionPolicy) を変更し、スクリプトの実行を許可します。
スクリプト実行エラーが発生している様子

このシステムではスクリプトの実行が無効になっているため、ファイルを読み込むことができません。詳細については、「about_Execution_Policies」(htt
ps://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。
+ CategoryInfo : セキュリティ エラー: (: ) []、ParentContainsError
RecordExc eption
+ FullyQualifiedErrorId : UnauthorizedAccess
PS D:\>
原因と解決方法
PowerShell には、実行ポリシー (ExecutionPolicy) という安全機能が存在します。この機能は、ユーザーの誤操作や、悪意のあるスクリプトの実行を防ぐために、スクリプトの実行を制御します。初期設定は OS によって異なり、Windows クライアントでは Restricted に設定されています。この設定では、スクリプトの実行が禁止されているため、スクリプトを実行しようとすると、エラーが発生します。
実行ポリシーの設定値を Restricted 以外に変更することで、スクリプトの実行が可能になります。
設定値 | 説明 |
---|---|
Restricted | すべてのスクリプトは実行できません。 |
AllSigned | 信頼できる発行元によって署名されているスクリプトのみ実行できます。 |
RemoteSigned | ローカルの著名なしスクリプトと、インターネットからダウンロードした署名付きのスクリプトが実行できます。 |
Unrestricted | すべてのスクリプトを実行できますが、インターネットからダウンロードしたスクリプトは警告が表示されます。 |
Bypass | すべてのスクリプトを実行できます。 |
Default | 既定の実行ポリシーです。Windows の場合は Restricted、Windowsサーバー では RemoteSigned になります。また、Linux や macOS では Unrestricted です。 |
OS | 初期値 |
---|---|
Windows クライアント | Restricted |
Windows サーバー | RemoteSigned |
上記以外(Linux / macOS) | Unrestricted |
実行ポリシーの確認方法
PowerShell で次のコマンドを実行すると、現在の実行ポリシーが表示されます。Get-ExecutionPolicy
実行ポリシーの設定方法
Set-ExecutionPolicy コマンドを使用し、実行ポリシー(ExecutionPolicy) を変更します。また、実行ポリシーは PowerShell 起動時のコマンドライン引数でも指定できます。一時的にスクリプトを実行可能にする(管理者権限不要)
- PowerShellを起動する度に設定が必要です。
- 管理者権限は不要です。
-
PowerShell を 起動し、次のコマンドを実行します。
※Unrestricted の部分は 表「実行ポリシーの種類」を参考に、適切なポリシーを指定します。
Set-ExecutionPolicy Unrestricted -Scope Process
-
実行ポリシーを変更してよいか選択肢が表示されるので、y または Y を 入力し、エンターキーを押します。
Set-ExecutionPolicy Unrestricted -Scope Process > Set-ExecutionPolicy Unrestricted -Scope Process 実行ポリシーの変更 実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170) で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか? [Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): y
- スクリプトが実行可能な状態になります。
常にスクリプトを実行可能にする(管理者権限が必要)
- 設定の変更には管理者権限が必要です。
- スクリプト実行時に管理者権限は不要です。
- コンピューターを再起動しても、設定は有効のままです。
- セキュリティリスクが高くなります。
- システム管理者権限で PowerShell を起動します。
-
次のコマンドを実行します。
※Unrestricted の部分は 表「実行ポリシーの種類」を参考に、適切なポリシーを指定します。
Set-ExecutionPolicy Unrestricted
-
実行ポリシーを変更してよいか選択肢が表示されるので、y または Y を 入力し、エンターキーを押します。
Set-ExecutionPolicy Unrestricted > Set-ExecutionPolicy Unrestricted 実行ポリシーの変更 実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170) で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか? [Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): y
- スクリプトが実行可能な状態になります。
PowerShell の起動時に実行ポリシーを指定する(管理者権限不要)
PowerShell の起動引数 -ExecutionPolicy で実行ポリシーの指定ができます。コマンドプロンプトから起動
- コマンドプロンプトを起動します。
-
次のコマンドを実行します。
※Unrestricted の部分は 表「実行ポリシーの種類」を参考に、適切なポリシーを指定します。
PowerShell.exe -ExecutionPolicy Unrestricted
- スクリプトが実行可能な状態で PowerShell が起動します。
ショートカットから起動
- PowerShellのショートカットを作成します。
-
ショートカット の プロパティを表示し、リンク先欄に 起動引数を追加します。
※Unrestricted の部分は 表「実行ポリシーの種類」を参考に、適切なポリシーを指定します。
-ExecutionPolicy Unrestricted
PowerShellのショートカット
参考資料
- Microsoft 公式ドキュメント - Get-ExecutionPolicy - PowerShell
- Microsoft 公式ドキュメント - Set-ExecutionPolicy - PowerShell
- Microsoft 公式ドキュメント - about_Execution_Policies - PowerShell
検証環境
- Windows PowerShell 5.1.19041.3803
- Windows 10 Enterprise Version 22H2 OS Build 19045.3803 Experience: Windows Feature Experience Pack 1000.19053.1000.0