PowerShell:このシステムではスクリプトが無効になっています

Windows 10オペレーティングシステムには、さまざまなタスクを管理および実行するための強力なツール、PowerShellがあります。このコンソールは、スクリプトを使用してオペレーティングシステム全体を制御できるため、管理者を対象としています。PowerShellは、システムに変更を加えるために多くのバックグラウンドアプリケーションで使用されているため、PCのセキュリティが危険にさらされています。

このスクリプトは、私たちのコンピュータ上で直線的に実行されるコードで書かれたシンプルなプログラムです。独自のスクリプトを作成して実行してタスクを自動化したり、アプリケーションで実行して特定の構成やタスクを実行したりできます。既定では、Windows 10は、アプリケーションまたはシステムが署名されているか、または「ネイティブ」である場合、システムでスクリプトを実行することを妨げません。スクリプトを実行すると問題が発生し、「このシステムではスクリプトが無効になっています」というエラーが表示されます。これはPowerShellの階層化セキュリティ対策であり、悪意のあるスクリプトの実行を防ぎ、システムに害を与える可能性があります。PowerShellのセキュリティポリシーを変更する方法を見てみましょう

PowerShellスクリプト実行ポリシー

このシステムではスクリプトが無効になっています」というエラーが表示された場合、ポリシー構成を確認して、Windows 10で構成されているスクリプトを実行できます。管理者としてPowerShellを開き、次の操作を行います。

  • Get-ExecutionPolicy -List

スクリプトを実行するためのいくつかのレベルのポリシー許可を確認できます。

Powershellポリシー構成

スクリプトの実行ポリシーを変更するには、各スコープに割り当てることができるさまざまな特権レベルを知っている必要があります。

  • 制限:すべてのスクリプトがブロックされますが、インタラクティブコマンドは許可されます。
  • RemoteSignedアップロードされたスクリプトは、信頼できる発行元によって署名されている必要があります。ローカルスクリプトは署名なしで実行されます
  • AllSigned:ローカルとリモートの両方(ロード済み)の署名付きスクリプトの実行を許可します。
  • 無制限:無制限。署名されていないスクリプトも含め、すべてのスクリプトを実行できます。

スクリプトの条件と制限がわかったら、それらを変更できます。たとえば、「このシステムではスクリプトが無効になっています」というエラーを修正するには、1つのアプレットを入力するだけで済みます。管理者としてPowerShellを開き、以下を実行します。

  • Set-ExecutionPolicy Unrestricted -Scope CurrentUser -ユーザーの制限なしに起動します。
  • Set-ExecutionPolicyRestricted -Scope CurrentUser 必要に応じて戻ります。

ローカルユーザーに無制限のスクリプトを許可します。-Scopeスイッチは、ポリシーの変更を適用するかを決定します。「CurrentUser」と入力すると、現在のユーザーにのみ適用され、「LocalMachine」と入力すると、システム全体に適用されます。

ローカルユーザーに無制限のスクリプトを許可します

上記の方法でスクリプトを開始できず、「このシステムではスクリプトが無効になっています」というエラーが表示される場合は、制限を完全に削除できます。これは大きなリスクであり、スクリプトは101%安全である必要があることを理解する必要があります。管理者としてPowerShellを開き、以下を実行します。

  • Set-ExecutionPolicy Unrestricted -制限なしでスクリプトの実行を許可します。
  • Set-ExecutionPolicy Restricted-デフォルトに戻します。

制限なしでスクリプトの実行を許可する