Home / Microsoft / Windows / 【2026年最新版】Windows 11のPowerShellスクリプトが実行できない・ブロックされる原因と対処法【完全ガイド】

【2026年最新版】Windows 11のPowerShellスクリプトが実行できない・ブロックされる原因と対処法【完全ガイド】

※本ページにはプロモーション(広告)が含まれています

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 すべて実行可(リモートは警告表示) 非推奨

現在の実行ポリシーを確認する方法

まずは現在の設定を確認しましょう。

手順:

  1. スタートメニューで「PowerShell」と検索します
  2. 「Windows PowerShell」をクリックして起動します
  3. 以下のコマンドを入力して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に変更する(推奨)

最もバランスの取れた設定です。ローカルで作成したスクリプトは制限なしで実行でき、インターネットからダウンロードしたスクリプトには署名が必要です。

手順:

  1. スタートメニューで「PowerShell」と検索します
  2. 「Windows PowerShell」を右クリックして「管理者として実行」を選択します
  3. ユーザーアカウント制御(UAC)のダイアログで「はい」をクリックします
  4. 以下のコマンドを入力してEnterキーを押します:
    Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
  5. 確認メッセージが表示されたら「Y」を入力してEnterキーを押します
  6. 設定が変更されたか確認します:
    Get-ExecutionPolicy

「-Scope CurrentUser」を付けることで、現在のユーザーアカウントにのみ設定が適用されます。他のユーザーアカウントには影響しません。

対処法2:管理者権限なしで現在のセッションのみ変更する

管理者権限がない場合や、一時的にスクリプトを実行したい場合に便利な方法です。

手順:

  1. 通常のPowerShellを起動します(管理者権限は不要)
  2. 以下のコマンドを入力してEnterキーを押します:
    Set-ExecutionPolicy Bypass -Scope Process
  3. これで現在のPowerShellウィンドウ内でのみスクリプトが実行可能になります
  4. PowerShellウィンドウを閉じると設定は自動的に元に戻ります

ポイント:「-Scope Process」を指定しているため、この設定は現在開いているPowerShellウィンドウを閉じた時点で自動的に無効になります。セキュリティリスクが最小限に抑えられます。

対処法3:スクリプトファイルを直接実行する(バイパス方法)

実行ポリシーを変更せずに、特定のスクリプトだけを実行する方法です。

方法A:PowerShellコマンドラインから実行

以下のコマンドで、実行ポリシーを一時的にバイパスしてスクリプトを実行できます:

powershell -ExecutionPolicy Bypass -File "C:\Users\ユーザー名\Desktop\script.ps1"

方法B:スクリプトの内容をコピー&ペーストで実行

  1. .ps1ファイルをメモ帳やVS Codeで開きます
  2. 内容をすべてコピーします(Ctrl + A → Ctrl + C)
  3. PowerShellウィンドウに貼り付けます(Ctrl + V)
  4. Enterキーで実行します

注意:この方法は実行ポリシーの対象外のため、ブロックされません。ただし、スクリプトの内容を理解した上で実行してください。

対処法4:ダウンロードしたスクリプトの「ブロック」を解除する

インターネットからダウンロードしたスクリプトファイルには、Zone Identifierが付加されています。これを解除することでスクリプトを実行できます。

方法A:ファイルのプロパティから解除

  1. スクリプトファイル(.ps1)を右クリックして「プロパティ」を選択します
  2. 「全般」タブの下部に「セキュリティ: このファイルは他のコンピュータから…」という表示があります
  3. 「許可する」にチェックを入れます
  4. 「適用」→「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」をインストールすることで、別の実行ポリシー設定が適用されます。

手順:

  1. Microsoft StoreまたはGitHubからPowerShell 7をダウンロードします
  2. インストール後、スタートメニューで「pwsh」と検索して起動します
  3. 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スクリプト実行の基本操作ガイド

スクリプトファイルの作成方法

手順:

  1. メモ帳を開きます(スタートメニューで「メモ帳」と検索)
  2. PowerShellのコマンドを入力します(例:Write-Host "Hello, World!"
  3. 「ファイル」→「名前を付けて保存」を選択します
  4. ファイル名を「test.ps1」にします(拡張子を必ず.ps1に)
  5. 「ファイルの種類」を「すべてのファイル (*.*)」に変更します
  6. 保存します

スクリプトの実行方法

手順:

  1. PowerShellを開きます
  2. スクリプトファイルがあるフォルダに移動します:
    cd C:\Users\ユーザー名\Desktop
  3. スクリプトを実行します:
    .\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管理の自動化スキルが身につく

🛒 Amazonで探す

ワイヤレスキーボード プログラマー向け

約7,980円

長時間のコーディング作業に最適。メカニカルキー搭載

🛒 Amazonで探す

USBハブ Type-C 7ポート

約2,480円

デスクトップ環境の拡張に。セルフパワー対応で安定動作

🛒 Amazonで探す

※ 価格は変動します。最新価格はリンク先でご確認ください

よくある質問(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)のセキュリティ設定が原因です。

対処法のまとめ

  1. 実行ポリシーをRemoteSignedに変更する(最も推奨)
  2. 管理者権限なしで現在のセッションのみBypassに変更する
  3. スクリプトを直接実行する(コマンドラインからバイパス)
  4. ダウンロードしたスクリプトの「ブロック」を解除する
  5. 組織のグループポリシーの場合はIT管理者に相談する
  6. PowerShell 7をインストールして使用する

最も一般的な解決方法は、実行ポリシーを「RemoteSigned」に変更することです。これにより、ローカルで作成したスクリプトは自由に実行できるようになり、セキュリティも適切に維持されます。

スクリプトの実行は便利ですが、信頼できないスクリプトを実行しないことが最も重要なセキュリティ対策です。必ず実行前にスクリプトの内容を確認する習慣をつけましょう。

Check Also

Windows 11のWindows Terminalが起動しない対処法

【2026年最新版】Windows 11のWindows Terminalが起動しない・開かない原因と対処法【完全ガイド】

Windows 11でWind …