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-ExecutionPolicyExecutionPolicy パラメーターを使用してポリシーを 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:

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

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

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

この例では、スクリプトのコードがレビューされ、安全に実行できるものとして検証されています。 このコマンドレットではUnblock-File、Path パラメーターを使用してスクリプトのブロックを解除します。

実行ポリシーが変更されなかったことを 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. グループ ポリシーによってコンピューターの現在のユーザーに対して設定します。
  • Process. 現在の PowerShell セッションにのみ影響します。
  • LocalMachine. コンピューターのすべてのユーザーに影響を与える既定のスコープ。
  • CurrentUser. 現在のユーザーにのみ影響します。
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

このコマンドレットにオブジェクトをパイプすることはできません。

出力

ExecutionPolicy

このコマンドレットは、Linux および macOS プラットフォームでは常に Unrestricted を返します。 Windows プラットフォームでは、現在の実行ポリシーが返されます。

メモ

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