Partilhar via


Get-ExecutionPolicy

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

Syntax

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

Description

Para apresentar as políticas de execução de cada âmbito pela ordem de precedência, utilize Get-ExecutionPolicy -List. Para ver a política de execução efetiva da sua sessão do PowerShell, utilize Get-ExecutionPolicy sem parâmetros.

A política de execução efetiva é determinada pelas políticas de execução definidas por Set-ExecutionPolicy e Política de Grupo definições.

Para obter mais informações, veja about_Execution_Policies.

Exemplos

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

Este comando apresenta as políticas de execução de cada âmbito pela ordem de precedência.

Get-ExecutionPolicy -List

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

O Get-ExecutionPolicy cmdlet utiliza o parâmetro Lista para apresentar a política de execução de cada âmbito.

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

Este exemplo mostra como definir uma política 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 utiliza o parâmetro ExecutionPolicy para especificar a política RemoteSigned . O parâmetro Âmbito especifica o valor de âmbito predefinido , LocalMachine. Para ver as definições da política de execução, utilize o Get-ExecutionPolicy cmdlet com o parâmetro Lista .

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

Este exemplo mostra como apresentar 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 utiliza o parâmetro Lista para apresentar a política de execução de cada âmbito. O Get-ExecutionPolicy cmdlet é executado sem um parâmetro para apresentar 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 política de execução RemoteSigned impede a execução de scripts não assinados.

Uma melhor prática é ler o código do script e verificar se é seguro antes de utilizar o Unblock-File cmdlet. O Unblock-File cmdlet desbloqueia scripts para que 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 utiliza o parâmetro ExecutionPolicy para especificar a política RemoteSigned . A política está definida para o âmbito predefinido LocalMachine.

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

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

Neste exemplo, o código do script foi revisto e verificado como seguro para ser executado. O Unblock-File cmdlet utiliza o parâmetro Caminho para desbloquear o script.

Para verificar se Unblock-File não alterou a política de execução, Get-ExecutionPolicy apresenta 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 da política de execução da sessão listados por ordem de precedência. Por predefinição, Get-ExecutionPolicy obtém apenas a política de execução efetiva.

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

-Scope

Especifica o âmbito afetado por uma política de execução.

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

  • MachinePolicy. Definido por um Política de Grupo para todos os utilizadores do computador.
  • UserPolicy. Definido por um Política de Grupo para o utilizador atual do computador.
  • Processo. Afeta apenas a sessão atual do PowerShell.
  • CurrentUser. Afeta apenas o utilizador atual.
  • LocalMachine. Âmbito predefinido que afeta todos os utilizadores do computador.
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

Get-ExecutionPolicy não aceita a entrada do pipeline.

Saídas

ExecutionPolicy

Notas

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