Contents

このシステムでは PowerShell スクリプトの実行が無効になっている問題を修正する

<本文>/images/Running-PowerShell-Scripts-is-Disabled-on-this-system_ftimg.png

PowerShell スクリプトを実行しようとして、「このシステムではスクリプトの実行が無効になっています」というメッセージが表示されたことがあるのは、あなただけではありません。これは、特に開発者、IT 管理者、セットアップ スクリプト、自動化タスク、またはローカル ツールを実行しようとしている初心者にとって、最も一般的な PowerShell エラーの 1 つであると言わざるを得ません。

最近、Windows 11 PC で PowerShell スクリプトを実行しようとしたところ、「このシステムではスクリプトの実行が無効になっているため、PowerShell スクリプトを読み込むことができません」というエラーが発生しました。詳細については、https:/go.microsoft.com/fwlink/?LinkID=135170 で about_Execution_Policies を参照してください。

「このシステムではスクリプトの実行が無効になっています」というエラーは、コンピューターの現在の PowerShell 実行ポリシーがスクリプト ファイルの実行を妨げる「制限付き」に設定されているために発生します。 PowerShell 実行ポリシーを Restricted から RemoteSigned または Bypass に変更すると、スクリプトを正常に実行できるようになります。これを手動で行うことも、Intune またはグループ ポリシーを使用して、管理された Windows デバイス上で PS 実行ポリシーを構成することもできます。

/images/PatchMyPC-AppCatalog-725x250-1.jpg 私の PC にパッチを適用してサードパーティ アプリケーションをインストールおよび更新する /images/PowerShell-Script-cannot-be-loaded-because-running-scripts-is-disabled-on-this-system-1024x469.png このシステムではスクリプトの実行が無効になっているため、PowerShell スクリプトを読み込むことができません

PowerShell が Windows 上のスクリプトをブロックするのはなぜですか?

PowerShell は、Windows に組み込まれている強力な自動化およびスクリプト ツールです。 PowerShell には、基本的にコンピュータ上でスクリプトを実行できるかどうかを制御する実行ポリシーと呼ばれるセキュリティ機能が含まれています。

特に管理対象またはロックダウンされた Windows システム上で、PowerShell スクリプトの実行がデフォルトでブロックされる正当な理由をいくつか示します。

  • 設定や値などの変更などのシステム変更を自動化します。
  • ソフトウェアまたはアプリケーションをインストールします。
  • ファイルとレジストリ設定を変更します。
  • ネットワークやサービスと対話します。

PowerShell スクリプトを実行する前のセキュリティに関するヒント

実行ポリシーは、ユーザーのアクションを制限するセキュリティ システムではありません。これは偶発的なリスクを軽減するのに役立ち、Microsoft 自体もこれをハードなセキュリティ制御よりも安全機能として扱っています。ただし、PowerShell スクリプトを実行する前に、次の点を考慮してください。

  • 不明なソースからのスクリプトを実行しないでください。
  • スクリプトを実行する前に確認してください。メモ帳または PS ISE で開き、徹底的にテストします。
  • 可能な場合は、Unrestricted よりも RemoteSigned を優先します。

※バイパス実行ポリシーは必要な場合にのみ使用してください。

このシステムではスクリプトの実行が無効になっている問題を修正

Windows コンピュータで「このシステムではスクリプトの実行が無効になっています」エラーを修正するには、次の手順に従います。

ステップ 1: 現在の PowerShell 実行ポリシーを確認する

まず、Get-ExecutionPolicy コマンドレットを使用して、現在の PowerShell セッションの実行ポリシーを確認します。 PowerShell で次のコマンドを実行して、スクリプト実行ポリシーを取得します。


Get-ExecutionPolicy

コピー


Get-ExecutionPolicy

現在のユーザーに設定されている実行ポリシーを取得するには、Get-ExecutionPolicy の Scope パラメーターを使用する以下のコマンドを実行します。


Get-ExecutionPolicy -Scope CurrentUser

コピー


Get-ExecutionPolicy



-



Scope CurrentUser

上記のコマンドを実行すると、現在の実行ポリシーが制限付きに設定されていることがわかります。実行ポリシーを変更するための次のステップに進みます。

/images/Check-the-Current-PowerShell-Execution-Policy-1024x443.png 現在の PowerShell 実行ポリシーを確認してください

ステップ 2: PowerShell 実行ポリシーを設定する

Windows コンピューターで PowerShell 実行ポリシーを変更するには、Set-ExecutionPolicy コマンドレットを使用できます。各実行ポリシーは特定の目的のために設計されているため、変更を加える前にその意図を十分に理解してください。

リモート署名済み

これは開発者に対して最も広く推奨されている実行ポリシーであり、ダウンロードされたすべてのスクリプトが信頼できる発行者によって署名されることが必要です。これにより、一部の安全でないダウンロード ファイルから保護しながら、スクリプトを実行するための十分な柔軟性が得られます。

以下のコマンドを実行して、実行ポリシーを RemoteSigned に設定します。


Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Force

コピー


Set-ExecutionPolicy



-



ExecutionPolicy RemoteSigned



-



Force

Windows デバイスのローカル管理者ではないユーザーの場合は、以下のコマンドを使用して現在のユーザーの実行ポリシーを変更できます。


Set-ExecutionPolicy -ExecutionPolicy -Scope CurrentUser RemoteSigned -Force

コピー


Set-ExecutionPolicy



-



ExecutionPolicy



-



Scope CurrentUser RemoteSigned



-



Force

以下の画像では、実行ポリシーが RemoteSigned に設定されていることがわかります。これにより、ユーザーがスクリプトを実行できるようになり、「このシステムではスクリプトの実行が無効になっています」というエラーが完全に解決されるようになります。

/images/Set-PowerShell-execution-policy-to-RemoteSigned-1024x442.png PowerShell 実行ポリシーを RemoteSigned に設定します

バイパス

バイパス実行ポリシーは、一時的な自動化タスクやワンタイム インストール スクリプトの実行によく使用されます。これにより、システム全体の設定を変更したり、管理者権限を必要とせずに、単一のスクリプトを実行できます。バイパス実行ポリシーを使用してスクリプトを実行すると、「このシステムではスクリプトの実行が無効になっています」エラーを安全に解決できます。

PowerShell を起動し、以下のコマンドを実行して、バイパス実行ポリシーでスクリプトを実行します。コマンドを実行する前に、スクリプト ファイルの正しいパスを入力していることを確認してください。


powershell.exe -ExecutionPolicy Bypass -File "C:\Script_Path\yourscript.ps1"

コピー


powershell.exe



-



ExecutionPolicy Bypass



-



File



"C:\Script_Path\yourscript.ps1"

以下のコマンドを使用して、現在の PowerShell セッションのみにバイパス モードを設定することもできます。この変更は、PowerShell ウィンドウを閉じると消えます。


Set-ExecutionPolicy Bypass -Scope Process

コピー


Set-ExecutionPolicy



Bypass



-



Scope



Process

/images/Set-PowerShell-execution-policy-to-Bypass-1024x515.png PowerShell 実行ポリシーをバイパスに設定します

無制限

これは Windows 以外のコンピュータのデフォルトの実行ポリシーであり、変更できません。これは安全ではなく、署名されていないスクリプトの実行を許可し、悪意のあるスクリプトが実行されるリスクが高まるため、あまり使用されません。

以下のコマンドを実行して、実行ポリシーを無制限に設定します。 「実行ポリシーを変更しますか?」と尋ねられたら、A (すべてはい) を入力して Enter キーを押すと、実行ポリシーが正常に変更されます。


Set-ExecutionPolicy -ExecutionPolicy Unrestricted

コピー


Set-ExecutionPolicy



-



ExecutionPolicy Unrestricted

以下の図では、実行ポリシーが「無制限」に設定されていることがわかります。これにより、ユーザーがスクリプトを実行し、「このシステムではスクリプトの実行が無効になっています」というエラーが解決されるようになります。

/images/Set-PowerShell-execution-policy-to-unrestricted-1024x429.png PowerShell 実行ポリシーを無制限に設定します

レジストリで PowerShell 実行ポリシーを確認する

次の手順を使用して、Windows レジストリ経由で PowerShell 実行ポリシー構成を確認できます。

  1. Windows PC で、スタート を右クリックし、ファイル名を指定して実行 を選択します。 「regedit」と入力し、Enter キーを押してレジストリ エディタを起動します。

  2. 以下のレジストリ パスに移動し、ExecutionPolicy キーの値を探して、現在の実行ポリシーを特定します。


Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell

コピー


Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\



1



\ShellIds\Microsoft.PowerShell

/images/Check-PowerShell-Execution-Policy-in-Windows-Registry-1024x531.png Windows レジストリの PowerShell 実行ポリシーを確認してください

最終的な考え

「PowerShell: このシステムではスクリプトの実行が無効になっています」というエラー メッセージは恐ろしく見えるかもしれませんが、ほとんどの場合、PowerShell が予防策として機能しているだけです。通常、修正は簡単です。最初に実行ポリシーを確認し、日常的に使用するために、できれば RemoteSigned に設定します。適切な場合にのみバイパスを使用してください。実行ポリシーがどのように機能するかを理解すると、このエラーの処理がはるかに簡単になります。

このガイドは以上です。ご質問やご提案があれば、下のコメント欄でお気軽に共有してください。

*️⃣ 出典リンク:

PowerShell スクリプト、Intune またはグループ ポリシーを実行して PS 実行ポリシーを構成します。 /images/PatchMyPC-AppCatalog-725x250-1.jpg実行ポリシー