※本ページにはプロモーション(広告)が含まれています
Windows 11のPowerShellスクリプトが実行できない?原因と対処法を徹底解説
Windows 11でPowerShellスクリプト(.ps1ファイル)を実行しようとしたら、「このシステムではスクリプトの実行が無効になっているため、ファイル ○○.ps1 を読み込むことができません」というエラーメッセージが表示されて困っていませんか?
このエラーは、Windows 11のPowerShellにデフォルトで設定されている「実行ポリシー(Execution Policy)」というセキュリティ機能が原因です。PowerShellは悪意のあるスクリプトからシステムを保護するため、初期状態ではスクリプトの実行をブロックしています。
この記事では、Windows 11のPowerShellスクリプトが実行できない・ブロックされる原因を詳しく解説し、安全にスクリプトを実行するための具体的な対処法を初心者の方にもわかりやすくご紹介します。
この記事でわかること
- PowerShellスクリプトがブロックされる仕組みと原因
- 実行ポリシーの種類と安全な設定方法
- 管理者権限なしでスクリプトを実行する方法
- 組織のグループポリシーで制限されている場合の対処法
- セキュリティを維持しながらスクリプトを活用するベストプラクティス

PowerShellスクリプトがブロックされる仕組み
対処法を理解するために、まずはPowerShellの実行ポリシー(Execution Policy)の仕組みを理解しましょう。
実行ポリシーとは?
実行ポリシーは、PowerShellスクリプトの実行を制御するセキュリティ機能です。WindowsではデフォルトでPowerShellスクリプトの実行が制限されており、これは悪意のあるスクリプトがうっかり実行されるのを防ぐための安全措置です。
例えば、メールの添付ファイルに含まれていた悪意のある.ps1ファイルをダブルクリックしてしまっても、実行ポリシーがブロックしてくれます。
実行ポリシーの種類
| ポリシー名 | 動作 | 安全性 | 推奨 |
|---|---|---|---|
| Restricted | すべてのスクリプトをブロック(デフォルト) | 最高 | – |
| AllSigned | 署名済みスクリプトのみ実行可 | 高 | 企業向け |
| RemoteSigned | ローカルは実行可、リモートは署名必要 | 中 | 一般ユーザー向け |
| Bypass | すべてのスクリプトを制限なしで実行 | 低 | 一時的な使用のみ |
| Unrestricted | すべて実行可(リモートは警告表示) | 低 | 非推奨 |
現在の実行ポリシーを確認する方法
まずは現在の設定を確認しましょう。
手順:
- スタートメニューで「PowerShell」と検索します
- 「Windows PowerShell」をクリックして起動します
- 以下のコマンドを入力してEnterキーを押します:
Get-ExecutionPolicy -List
このコマンドを実行すると、スコープ(適用範囲)ごとの実行ポリシーが表示されます。
| スコープ | 説明 | 優先順位 |
|---|---|---|
| MachinePolicy | グループポリシー(コンピュータ) | 最高 |
| UserPolicy | グループポリシー(ユーザー) | 高 |
| Process | 現在のPowerShellセッション | 中 |
| CurrentUser | 現在のユーザー | 中低 |
| LocalMachine | コンピュータ全体 | 最低 |
PowerShellスクリプトがブロックされる主な原因
原因1:実行ポリシーがRestrictedに設定されている
Windows 11のPowerShellはデフォルトで「Restricted」ポリシーが設定されています。この設定ではすべてのスクリプト(.ps1ファイル)の実行がブロックされます。
原因2:組織のグループポリシーで制限されている
会社や学校で管理されているPCでは、IT管理者がグループポリシーでスクリプトの実行を制限している場合があります。この場合、ユーザー自身で設定を変更することはできません。
原因3:スクリプトファイルが「インターネットから取得」と判定されている
インターネットからダウンロードしたスクリプトファイルには、Windowsが「Zone Identifier」という情報を付加します。この情報が付いたファイルは、RemoteSignedポリシーの環境でもブロックされます。
原因4:スクリプトのデジタル署名が無効になっている
AllSignedポリシーが設定されている環境では、有効なデジタル署名がないスクリプトは実行できません。署名の期限が切れている場合も同様です。
原因5:Windows Defenderスマートスクリーンによるブロック
Windows 11のスマートスクリーン機能が、スクリプトファイルを潜在的に危険と判断してブロックすることがあります。

PowerShellスクリプトを実行可能にする対処法
対処法1:実行ポリシーをRemoteSignedに変更する(推奨)
最もバランスの取れた設定です。ローカルで作成したスクリプトは制限なしで実行でき、インターネットからダウンロードしたスクリプトには署名が必要です。
手順:
- スタートメニューで「PowerShell」と検索します
- 「Windows PowerShell」を右クリックして「管理者として実行」を選択します
- ユーザーアカウント制御(UAC)のダイアログで「はい」をクリックします
- 以下のコマンドを入力してEnterキーを押します:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser - 確認メッセージが表示されたら「Y」を入力してEnterキーを押します
- 設定が変更されたか確認します:
Get-ExecutionPolicy
「-Scope CurrentUser」を付けることで、現在のユーザーアカウントにのみ設定が適用されます。他のユーザーアカウントには影響しません。
対処法2:管理者権限なしで現在のセッションのみ変更する
管理者権限がない場合や、一時的にスクリプトを実行したい場合に便利な方法です。
手順:
- 通常のPowerShellを起動します(管理者権限は不要)
- 以下のコマンドを入力してEnterキーを押します:
Set-ExecutionPolicy Bypass -Scope Process - これで現在のPowerShellウィンドウ内でのみスクリプトが実行可能になります
- PowerShellウィンドウを閉じると設定は自動的に元に戻ります
ポイント:「-Scope Process」を指定しているため、この設定は現在開いているPowerShellウィンドウを閉じた時点で自動的に無効になります。セキュリティリスクが最小限に抑えられます。
対処法3:スクリプトファイルを直接実行する(バイパス方法)
実行ポリシーを変更せずに、特定のスクリプトだけを実行する方法です。
方法A:PowerShellコマンドラインから実行
以下のコマンドで、実行ポリシーを一時的にバイパスしてスクリプトを実行できます:
powershell -ExecutionPolicy Bypass -File "C:\Users\ユーザー名\Desktop\script.ps1"
方法B:スクリプトの内容をコピー&ペーストで実行
- .ps1ファイルをメモ帳やVS Codeで開きます
- 内容をすべてコピーします(Ctrl + A → Ctrl + C)
- PowerShellウィンドウに貼り付けます(Ctrl + V)
- Enterキーで実行します
注意:この方法は実行ポリシーの対象外のため、ブロックされません。ただし、スクリプトの内容を理解した上で実行してください。
対処法4:ダウンロードしたスクリプトの「ブロック」を解除する
インターネットからダウンロードしたスクリプトファイルには、Zone Identifierが付加されています。これを解除することでスクリプトを実行できます。
方法A:ファイルのプロパティから解除
- スクリプトファイル(.ps1)を右クリックして「プロパティ」を選択します
- 「全般」タブの下部に「セキュリティ: このファイルは他のコンピュータから…」という表示があります
- 「許可する」にチェックを入れます
- 「適用」→「OK」をクリックします
方法B:PowerShellコマンドで解除
以下のコマンドで、ファイルのブロックを解除できます:
Unblock-File -Path "C:\Users\ユーザー名\Desktop\script.ps1"
フォルダ内の全.ps1ファイルを一括解除する場合:
Get-ChildItem -Path "C:\Scripts" -Filter *.ps1 | Unblock-File
対処法5:グループポリシーで制限されている場合の対応
組織のPCでグループポリシーによってスクリプトが制限されている場合は、自力での変更が難しいですが、いくつかの回避策があります。
まず確認:グループポリシーの制限か判定する方法
以下のコマンドを実行して、MachinePolicyまたはUserPolicyに値が設定されている場合は、グループポリシーによる制限です:
Get-ExecutionPolicy -List
対応策:
- IT管理者に相談する:業務でスクリプトが必要な理由を説明し、例外設定を依頼します
- Processスコープで一時変更:一部の組織では、Processスコープでの変更が許可されている場合があります
- スクリプトの内容を直接実行:対処法3の方法Bを使います
対処法6:PowerShell 7(最新版)をインストールする
Windows 11に標準搭載されている「Windows PowerShell 5.1」とは別に、「PowerShell 7」をインストールすることで、別の実行ポリシー設定が適用されます。
手順:
- Microsoft StoreまたはGitHubからPowerShell 7をダウンロードします
- インストール後、スタートメニューで「pwsh」と検索して起動します
- PowerShell 7の実行ポリシーを設定します:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
PowerShell 7はWindows PowerShell 5.1とは独立して動作するため、組織のポリシーがWindows PowerShellにのみ適用されている場合、PowerShell 7では制限なくスクリプトを実行できる場合があります。

セキュリティを維持しながらスクリプトを活用するベストプラクティス
1. RemoteSignedを基本設定にする
多くのユーザーにとって、RemoteSignedが最もバランスの取れた設定です。自分で作成したスクリプトは自由に実行でき、インターネットからのスクリプトには署名が必要というルールにより、適度なセキュリティが保たれます。
2. 不明なスクリプトは必ず中身を確認する
他人から受け取ったスクリプトや、ネットからダウンロードしたスクリプトは、実行前に必ずテキストエディタで内容を確認してください。特に以下のようなコマンドが含まれている場合は注意が必要です:
| 危険なコマンドの例 | 動作 | リスク |
|---|---|---|
| Remove-Item -Recurse -Force | ファイルやフォルダを強制削除 | データ消失 |
| Invoke-WebRequest | 外部サーバーと通信 | 情報漏洩 |
| New-Service | Windowsサービスを作成 | マルウェア常駐 |
| Set-MpPreference -DisableRealtimeMonitoring | Windows Defenderを無効化 | セキュリティ無効化 |
3. Bypassポリシーは一時的な使用に限る
Bypassポリシーはすべての制限を解除するため、常時設定にすることは避けてください。使用する場合は必ず「-Scope Process」を付けて、現在のセッションのみに限定しましょう。
4. Windows Terminalの活用
Windows 11に搭載されているWindows Terminalを使うと、PowerShellのプロファイル設定で実行ポリシーを管理しやすくなります。プロファイルごとに異なる設定を適用できるため、用途に応じた使い分けが可能です。
よくあるエラーメッセージと対処法
| エラーメッセージ | 原因 | 対処法 |
|---|---|---|
| スクリプトの実行が無効になっています | Restrictedポリシー | 対処法1でRemoteSignedに変更 |
| ファイル ○○ はデジタル署名されていません | AllSignedポリシー | 対処法1でRemoteSignedに変更 |
| アクセスが拒否されました | 管理者権限不足 | 管理者として実行、または対処法2 |
| レジストリへのアクセスが拒否されました | グループポリシーの制限 | 対処法5でIT管理者に相談 |
PowerShellスクリプト実行の基本操作ガイド
スクリプトファイルの作成方法
手順:
- メモ帳を開きます(スタートメニューで「メモ帳」と検索)
- PowerShellのコマンドを入力します(例:
Write-Host "Hello, World!") - 「ファイル」→「名前を付けて保存」を選択します
- ファイル名を「test.ps1」にします(拡張子を必ず.ps1に)
- 「ファイルの種類」を「すべてのファイル (*.*)」に変更します
- 保存します
スクリプトの実行方法
手順:
- PowerShellを開きます
- スクリプトファイルがあるフォルダに移動します:
cd C:\Users\ユーザー名\Desktop - スクリプトを実行します:
.\test.ps1
重要:スクリプトファイル名の前に「.\」(ドットとバックスラッシュ)を付ける必要があります。これはPowerShellのセキュリティ機能で、現在のディレクトリのスクリプトを実行する場合に必要です。
Windows 11の主要バージョンとPowerShellの変更点
| Windows 11バージョン | PowerShell関連の変更 |
|---|---|
| 24H2(2024年後半) | Windows Terminal がデフォルトシェルに |
| 25H1(2025年前半) | PowerShell 7のOS統合が強化 |
| 25H2(2025年後半) | Copilot連携でスクリプト作成支援 |
| 26H1(2026年前半) | AI駆動のスクリプト安全性チェック機能 |
この記事に関連するおすすめ商品
PowerShell実践ガイドブック
約3,300円
初心者から中級者まで。Windows管理の自動化スキルが身につく
ワイヤレスキーボード プログラマー向け
約7,980円
長時間のコーディング作業に最適。メカニカルキー搭載
USBハブ Type-C 7ポート
約2,480円
デスクトップ環境の拡張に。セルフパワー対応で安定動作
※ 価格は変動します。最新価格はリンク先でご確認ください
よくある質問(FAQ)
Q1. 実行ポリシーを変更するとセキュリティリスクはありますか?
RemoteSignedに変更する場合、セキュリティリスクは最小限です。この設定では、自分で作成したローカルスクリプトは実行可能ですが、インターネットからダウンロードしたスクリプトは署名がないとブロックされます。Bypassに設定する場合はリスクが高くなるため、「-Scope Process」で現在のセッションに限定することを推奨します。Unrestrictedへの常時設定は避けてください。
Q2. 実行ポリシーを変更したのにまだスクリプトが実行できません。なぜですか?
複数の原因が考えられます。まず、Get-ExecutionPolicy -Listで全スコープの設定を確認してください。上位スコープ(MachinePolicyやUserPolicy)でRestrictedが設定されていると、下位スコープの変更は無効になります。また、ダウンロードしたファイルのZone Identifierが残っている場合も実行できません。ファイルのプロパティから「許可する」にチェックを入れるか、Unblock-Fileコマンドを使用してください。
Q3. PowerShell ISEとPowerShellコンソールで実行ポリシーは同じですか?
はい、基本的に同じ実行ポリシーが適用されます。ただし、PowerShell ISE(Integrated Scripting Environment)はWindows 11では非推奨となっており、代わりにVisual Studio Codeの PowerShell拡張機能を使用することが推奨されています。VS Codeの統合ターミナルでPowerShellを使用する場合も、システムの実行ポリシーが適用されます。
Q4. .ps1ファイルをダブルクリックで実行するにはどうすればよいですか?
Windows 11のデフォルトでは、.ps1ファイルをダブルクリックするとメモ帳で開かれます。これはセキュリティ上の理由から意図的にこうなっています。どうしてもダブルクリックで実行したい場合は、.ps1ファイルの既定のプログラムをPowerShellに変更できますが、セキュリティの観点から推奨しません。代わりに、右クリックメニューから「PowerShellで実行」を選択するか、PowerShellウィンドウからコマンドで実行する方法をおすすめします。
Q5. Windows PowerShell 5.1とPowerShell 7の違いは何ですか?
Windows PowerShell 5.1はWindows 11に標準搭載されている従来版で、.NET Frameworkベースです。PowerShell 7は.NETベースのクロスプラットフォーム対応版で、最新の機能やパフォーマンス改善が含まれています。両方を同時にインストールして使い分けることが可能です。実行ポリシーの設定は独立しているため、それぞれ別々に管理されます。新規にスクリプトを作成する場合はPowerShell 7の使用を推奨します。
Q6. バッチファイル(.bat)はブロックされないのにPowerShellスクリプトがブロックされるのはなぜですか?
これは歴史的な経緯によるものです。バッチファイル(.bat/.cmd)は従来のコマンドプロンプト用で、実行ポリシーの対象外です。PowerShellはより強力なスクリプト言語であり、システムへの影響力が大きいため、追加のセキュリティ層として実行ポリシーが設けられています。バッチファイルもセキュリティリスクはありますが、Windowsの互換性維持のために制限が緩くなっています。
Q7. 企業の管理者です。推奨の実行ポリシー設定はありますか?
企業環境では、グループポリシーでAllSignedまたはRemoteSignedの設定を推奨します。AllSignedを使用する場合は、社内で使用するスクリプトにコード署名証明書で署名する運用フローを整備してください。RemoteSignedは管理負荷が低い一方で、ローカルスクリプトは無条件で実行可能なため、エンドポイントセキュリティソフトとの併用をおすすめします。Microsoftの公式ドキュメントでも企業向けのベストプラクティスが公開されています。
まとめ
Windows 11のPowerShellスクリプトが実行できない・ブロックされる問題は、実行ポリシー(Execution Policy)のセキュリティ設定が原因です。
対処法のまとめ
- 実行ポリシーをRemoteSignedに変更する(最も推奨)
- 管理者権限なしで現在のセッションのみBypassに変更する
- スクリプトを直接実行する(コマンドラインからバイパス)
- ダウンロードしたスクリプトの「ブロック」を解除する
- 組織のグループポリシーの場合はIT管理者に相談する
- PowerShell 7をインストールして使用する
最も一般的な解決方法は、実行ポリシーを「RemoteSigned」に変更することです。これにより、ローカルで作成したスクリプトは自由に実行できるようになり、セキュリティも適切に維持されます。
スクリプトの実行は便利ですが、信頼できないスクリプトを実行しないことが最も重要なセキュリティ対策です。必ず実行前にスクリプトの内容を確認する習慣をつけましょう。
minto.tech スマホ(Android/iPhone)・PC(Mac/Windows)の便利情報をお届け! 月間アクセス160万PV!スマートフォン、タブレット、パソコン、地デジに関する素朴な疑問や、困ったこと、ノウハウ、コツなどが満載のお助け記事サイトはこちら!