Get-ExecutionPolicy

現在のセッションの実行ポリシーを取得します。

構文

Get-ExecutionPolicy
   [[-Scope] <ExecutionPolicyScope>]
   [-List]
   [<CommonParameters>]

説明

各スコープの実行ポリシーを優先順位の順に表示するには、次を使用 Get-ExecutionPolicy -Listします。 PowerShell セッションの有効な実行ポリシーを確認するには、パラメーターなしで使用 Get-ExecutionPolicy します。

有効な実行ポリシーは、設定によって設定された実行ポリシーとグループ ポリシー設定によってSet-ExecutionPolicy決定されます。

詳細については、「about_Execution_Policies」を参照してください。

例 1: すべての実行ポリシーを取得する

このコマンドは、各スコープの実行ポリシーを優先順位に従って表示します。

Get-ExecutionPolicy -List

Scope          ExecutionPolicy
-----          ---------------
MachinePolicy  Undefined
UserPolicy     Undefined
Process        Undefined
CurrentUser    AllSigned
LocalMachine   Undefined

このコマンドレットではGet-ExecutionPolicy、List パラメーターを使用して各スコープの実行ポリシーを表示します。

例 2: 実行ポリシーを設定する

この例では、ローカル コンピューターの実行ポリシーを設定する方法を示します。

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
Get-ExecutionPolicy -List

Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       AllSigned
 LocalMachine    RemoteSigned

このコマンドレットではSet-ExecutionPolicy、ExecutionPolicy パラメーターを使用して RemoteSigned ポリシーを指定します。 Scope パラメーターは、既定のスコープ値 LocalMachine を指定します。 実行ポリシー設定を表示するには、List パラメーターと共にGet-ExecutionPolicyコマンドレットを使用します。

例 3: 有効な実行ポリシーを取得する

この例では、PowerShell セッションの有効な実行ポリシーを表示する方法を示します。

PS> Get-ExecutionPolicy -List

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       AllSigned
 LocalMachine    RemoteSigned

PS> Get-ExecutionPolicy

AllSigned

このコマンドレットではGet-ExecutionPolicy、List パラメーターを使用して各スコープの実行ポリシーを表示します。 Get-ExecutionPolicyこのコマンドレットは、有効な実行ポリシー AllSigned を表示するパラメーターなしで実行されます。

例 4: 実行ポリシーを変更せずにスクリプトを実行するブロックを解除する

この例では、 RemoteSigned 実行ポリシーで署名されていないスクリプトを実行できないようにする方法を示します。

ベスト プラクティスは、スクリプトのコードを読み取り、コマンドレットを使用Unblock-Fileする前に安全であることを確認することです。 コマンドレットは Unblock-File スクリプトを実行できるようにブロックを解除しますが、実行ポリシーは変更されません。

PS> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine

PS> Get-ExecutionPolicy

RemoteSigned

PS> .\Start-ActivityTracker.ps1

.\Start-ActivityTracker.ps1 : File .\Start-ActivityTracker.ps1 cannot be loaded.
The file .\Start-ActivityTracker.ps1 is not digitally signed.
The script will not execute on the system.
For more information, see about_Execution_Policies at https://go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1
+ .\Start-ActivityTracker.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess

PS> Unblock-File -Path .\Start-ActivityTracker.ps1

PS> Get-ExecutionPolicy

RemoteSigned

PS> .\Start-ActivityTracker.ps1

Task 1:

ExecutionPolicySet-ExecutionPolicy パラメーターを使用して、RemoteSigned ポリシーを指定します。 ポリシーは、既定のスコープ LocalMachine に設定されます。

このコマンドレットは Get-ExecutionPolicyRemoteSigned が現在の PowerShell セッションの有効な実行ポリシーであることを示しています。

Start-ActivityTracker.ps1 スクリプトは、現在のディレクトリから実行されます。 スクリプトはデジタル署名されていないため、 RemoteSigned によってブロックされます。

この例では、スクリプトのコードが確認され、実行しても安全と確認されました。 このコマンドレットでは Unblock-FilePath パラメーターを使用してスクリプトのブロックを解除します。

実行ポリシーが Unblock-File 変更されていないことを確認するには、 Get-ExecutionPolicy 有効な実行ポリシー RemoteSigned を表示します。

Start-ActivityTracker.ps1スクリプトは、現在のディレクトリから実行されます。 コマンドレットによってブロックが解除されたため、スクリプトの実行が Unblock-File 開始されます。

パラメーター

-List

セッションのすべての実行ポリシー値を取得し、優先順位順に一覧表示します。 既定では、 Get-ExecutionPolicy 有効な実行ポリシーのみを取得します。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Scope

実行ポリシーの影響を受けるスコープを指定します。

有効な実行ポリシーは、優先順位によって次のように決定されます。

  • MachinePolicy。 コンピューターのすべてのユーザーのグループ ポリシーによって設定されます。
  • UserPolicy。 コンピューターの現在のユーザーのグループ ポリシーによって設定されます。
  • プロセス。 現在の PowerShell セッションにのみ影響します。
  • CurrentUser。 現在のユーザーにのみ影響します。
  • LocalMachine。 コンピューターのすべてのユーザーに影響を与える既定のスコープ。
Type:ExecutionPolicyScope
Accepted values:CurrentUser, LocalMachine, MachinePolicy, Process, UserPolicy
Position:0
Default value:Effective execution policy
Required:False
Accept pipeline input:True
Accept wildcard characters:False

入力

None

Get-ExecutionPolicy はパイプラインからの入力を受け入れない。

出力

ExecutionPolicy

このコマンドレットは、Linux および macOS プラットフォームで 常に無制限 を返します。

メモ

実行ポリシーは、PowerShell セキュリティ戦略の一部です。 実行ポリシーによって、PowerShell プロファイルなどの構成ファイルを読み込めるか、スクリプトを実行できるかが決まります。 また、スクリプトを実行する前にデジタル署名する必要があるかどうか。