このシステムでは PowerShell スクリプトの実行が無効になっている問題を修正する
<本文>
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 実行ポリシーを構成することもできます。
私の PC にパッチを適用してサードパーティ アプリケーションをインストールおよび更新する
このシステムではスクリプトの実行が無効になっているため、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
上記のコマンドを実行すると、現在の実行ポリシーが制限付きに設定されていることがわかります。実行ポリシーを変更するための次のステップに進みます。
現在の 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 に設定されていることがわかります。これにより、ユーザーがスクリプトを実行できるようになり、「このシステムではスクリプトの実行が無効になっています」というエラーが完全に解決されるようになります。
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
PowerShell 実行ポリシーをバイパスに設定します
無制限
これは Windows 以外のコンピュータのデフォルトの実行ポリシーであり、変更できません。これは安全ではなく、署名されていないスクリプトの実行を許可し、悪意のあるスクリプトが実行されるリスクが高まるため、あまり使用されません。
以下のコマンドを実行して、実行ポリシーを無制限に設定します。 「実行ポリシーを変更しますか?」と尋ねられたら、A (すべてはい) を入力して Enter キーを押すと、実行ポリシーが正常に変更されます。
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
コピー
Set-ExecutionPolicy
-
ExecutionPolicy Unrestricted
以下の図では、実行ポリシーが「無制限」に設定されていることがわかります。これにより、ユーザーがスクリプトを実行し、「このシステムではスクリプトの実行が無効になっています」というエラーが解決されるようになります。
PowerShell 実行ポリシーを無制限に設定します
レジストリで PowerShell 実行ポリシーを確認する
次の手順を使用して、Windows レジストリ経由で PowerShell 実行ポリシー構成を確認できます。
-
Windows PC で、スタート を右クリックし、ファイル名を指定して実行 を選択します。 「regedit」と入力し、Enter キーを押してレジストリ エディタを起動します。
-
以下のレジストリ パスに移動し、ExecutionPolicy キーの値を探して、現在の実行ポリシーを特定します。
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell
コピー
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\
1
\ShellIds\Microsoft.PowerShell
Windows レジストリの PowerShell 実行ポリシーを確認してください
最終的な考え
「PowerShell: このシステムではスクリプトの実行が無効になっています」というエラー メッセージは恐ろしく見えるかもしれませんが、ほとんどの場合、PowerShell が予防策として機能しているだけです。通常、修正は簡単です。最初に実行ポリシーを確認し、日常的に使用するために、できれば RemoteSigned に設定します。適切な場合にのみバイパスを使用してください。実行ポリシーがどのように機能するかを理解すると、このエラーの処理がはるかに簡単になります。
このガイドは以上です。ご質問やご提案があれば、下のコメント欄でお気軽に共有してください。
*️⃣ 出典リンク:
PowerShell スクリプト、Intune またはグループ ポリシーを実行して PS 実行ポリシーを構成します。
、
実行ポリシー 、