Get-ExecutionPolicy

Obtém as políticas de execução da sessão atual.

Syntax

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

Description

Para exibir as políticas de execução para cada escopo na ordem de precedência, use Get-ExecutionPolicy -List. Para ver a política de execução efetiva para sua sessão do PowerShell, use Get-ExecutionPolicy sem parâmetros.

A diretiva de execução efetiva é determinada pelas diretivas de execução definidas pelas Set-ExecutionPolicy configurações de Diretiva de Grupo.

Para mais informações, veja about_Execution_Policies.

Exemplos

Exemplo 1: Obter todas as políticas de execução

Esse comando exibe as políticas de execução para cada escopo na ordem de precedência.

Get-ExecutionPolicy -List

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

O Get-ExecutionPolicy cmdlet usa o parâmetro List para exibir a política de execução de cada escopo.

Exemplo 2: Definir uma política de execução

Este exemplo mostra como definir uma diretiva de execução para o computador local.

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

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

O Set-ExecutionPolicy cmdlet usa o parâmetro ExecutionPolicy para especificar a RemoteSigned política. O parâmetro Scope especifica o valor de escopo padrão, LocalMachine. Para exibir as configurações de política de execução, use o Get-ExecutionPolicy cmdlet com o parâmetro List .

Exemplo 3: Obter a política de execução efetiva

Este exemplo mostra como exibir a política de execução efetiva para uma sessão do PowerShell.

PS> Get-ExecutionPolicy -List

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

PS> Get-ExecutionPolicy

AllSigned

O Get-ExecutionPolicy cmdlet usa o parâmetro List para exibir a política de execução de cada escopo. O Get-ExecutionPolicy cmdlet é executado sem um parâmetro para exibir a política de execução efetiva, AllSigned.

Exemplo 4: Desbloquear um script para executá-lo sem alterar a política de execução

Este exemplo mostra como a RemoteSigned diretiva de execução impede que você execute scripts não assinados.

Uma prática recomendada é ler o código do script e verificar se ele é seguro antes de usar o Unblock-File cmdlet. O Unblock-File cmdlet desbloqueia scripts para que eles possam ser executados, mas não altera a política de execução.

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:

O Set-ExecutionPolicy usa o parâmetro ExecutionPolicy para especificar a RemoteSigned política. A política é definida para o escopo padrão, LocalMachine.

O Get-ExecutionPolicy cmdlet mostra que RemoteSigned é a política de execução efetiva para a sessão atual do PowerShell.

O Start-ActivityTracker.ps1 script é executado a partir do diretório atual. O script é bloqueado porque RemoteSigned o script não é assinado digitalmente.

Para este exemplo, o código do script foi revisado e verificado como seguro para execução. O Unblock-File cmdlet usa o parâmetro Path para desbloquear o script.

Para verificar se Unblock-File não alterou a política de execução, Get-ExecutionPolicy exibe a política de execução efetiva, RemoteSigned.

O script, Start-ActivityTracker.ps1 é executado a partir do diretório atual. O script começa a ser executado porque foi desbloqueado pelo Unblock-File cmdlet.

Parâmetros

-List

Obtém todos os valores de política de execução para a sessão. Por padrão, Get-ExecutionPolicy obtém apenas a política de execução efetiva.

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

-Scope

Especifica o escopo afetado por uma diretiva de execução.

A política de execução efetiva é determinada pela ordem de precedência da seguinte maneira:

  • MachinePolicy. Definido por uma Diretiva de Grupo para todos os usuários do computador.
  • UserPolicy. Definido por uma Diretiva de Grupo para o usuário atual do computador.
  • Process. Afeta apenas a sessão atual do PowerShell.
  • LocalMachine. Escopo padrão que afeta todos os usuários do computador.
  • CurrentUser. Afeta apenas o usuário atual.
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

Entradas

None

Não é possível canalizar objetos para esse cmdlet.

Saídas

ExecutionPolicy

O cmdlet sempre retorna Irrestrito em plataformas Linux e macOS. Em plataformas Windows, ele retorna a diretiva de execução atual.

Observações

Uma política de execução faz parte da estratégia de segurança do PowerShell. As políticas de execução determinam se você pode carregar arquivos de configuração, como seu perfil do PowerShell, ou executar scripts. E se os scripts devem ser assinados digitalmente antes de serem executados.