Compartilhar via


Set-ExecutionPolicy

Altera a preferência do usuário para a diretiva de execução do Windows PowerShell.

Sintaxe

Set-ExecutionPolicy [-ExecutionPolicy] {<Unrestricted> | <RemoteSigned> | <AllSigned> | <Restricted> | <Default> | <Bypass> | <Undefined>} [[-Scope] {<Process> | <CurrentUser> | <LocalMachine> | <UserPolicy> | <MachinePolicy>}] [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrição

Set-ExecutionPolicy altera a preferência do usuário para a diretiva de execução do Windows PowerShell.

Para executar este comando no Windows Vista, no Windows Server 2008 e em versões posteriores do Windows, inicie o Windows PowerShell com a opção "Executar como administrador", mesmo que você seja membro do grupo Administradores do computador.

A diretiva de execução é parte da estratégia de segurança do Windows PowerShell. Ela determina se você pode carregar arquivos de configuração (incluindo seu perfil do Windows PowerShell) e executar scripts, bem como quais scripts, se houver algum, devem possuir assinatura digital para serem executados.

Para obter mais informações, consulte about_Execution_Policies.

Parâmetros

-ExecutionPolicy <ExecutionPolicy>

Especifica uma nova diretiva de execução para o shell. O nome do parâmetro ("Name") é opcional.

Os valores válidos são:

-- Restricted: não carrega arquivos de configuração nem executa scripts. "Restricted" é o padrão.

-- AllSigned: solicita que todos os scripts e arquivos de configuração sejam assinados por um fornecedor confiável, incluindo os scripts gravados no computador local.

-- RemoteSigned: solicita que todos os scripts e arquivos de configuração baixados da Internet sejam assinados por um fornecedor confiável.

-- Unrestricted: carrega todos os arquivos de configuração e executa todos os scripts. Se você executar um script não assinado que foi baixado da Internet, será solicitado que forneça a permissão para que ele seja executado.

-- Bypass: nada é bloqueado e não há avisos ou solicitações.

-- Undefined: remove a diretiva de execução atualmente atribuída do escopo atual. Este parâmetro não removerá uma diretiva de execução que é definida em um escopo de Diretiva de Grupo.

Necessário?

true

Posição?

1

Valor padrão

Aceitar entrada do pipeline?

true (ByValue)

Aceitar caracteres curinga?

false

-Force

Suprime todos os avisos. Por padrão, Set-ExecutionPolicy exibe um aviso sempre que você altera a diretiva de execução.

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-Scope <ExecutionPolicyScope>

Especifica o escopo da diretiva de execução. O padrão é LocalMachine.

Os valores válidos são:

-- Process: a diretiva de execução afeta apenas o processo atual do Windows PowerShell.

-- CurrentUser: a diretiva de execução afeta apenas o usuário atual.

-- LocalMachine: a diretiva de execução afeta todos os usuários do computador.

Para remover uma diretiva de execução de um escopo específico, defina a diretiva de execução para aquele escopo como Undefined.

Necessário?

false

Posição?

2

Valor padrão

LocalMachine

Aceitar entrada do pipeline?

true (ByPropertyName)

Aceitar caracteres curinga?

false

-Confirm

Solicita confirmação antes da execução do comando.

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-WhatIf

Descreve o que aconteceria se você executasse o comando sem, na verdade, fazê-lo.

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

<CommonParameters>

Esse cmdlet oferece suporte aos parâmetros comuns: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Para obter mais informações, consulte about_Commonparameters.

Entradas e saídas

O tipo de entrada é o tipo dos objetos que você pode canalizar para o cmdlet. O tipo de retorno é o tipo dos objetos que o cmdlet retorna.

Entradas

Microsoft.PowerShell.ExecutionPolicy, System.String

Você pode enviar um objeto de diretiva de execução ou uma cadeia de caracteres que contém o nome de uma diretiva de execução para Set-ExecutionPolicy.

Saídas

Nenhum

Esse cmdlet não retorna nenhuma saída.

Observações

Quando você usar Set-ExecutionPolicy, a nova preferência de usuário será gravada no Registro e permanecerá inalterada até que você a altere.

No entanto, se a Diretiva de Grupo "Ativar Execução de Script" estiver habilitada para o computador ou o usuário, a preferência de usuário será gravada no Registro, mas não será efetiva, e o Windows PowerShell exibirá uma mensagem explicando o conflito. Não será possível usar Set-ExecutionPolicy para substituir uma Diretiva de Grupo, mesmo se a preferência de usuário for mais restritiva que a diretiva.

Exemplo 1

C:\PS>set-executionpolicy remotesigned

Descrição
-----------
Esse comando define a preferência do usuário para a diretiva de execução do shell como RemoteSigned.





Exemplo 2

C:\PS>Set-ExecutionPolicy Restricted

Set-ExecutionPolicy : Windows PowerShell updated your local preference successfully, but the setting is overridden by the group policy applied to your system. Due to the override, your shell will retain its current effective execution policy of "AllSigned". Contact your group policy administrator for more information.
At line:1 char:20
+ set-executionpolicy  <<<< restricted

Descrição
-----------
Esse comando tenta definir a diretiva de execução do shell como "Restricted". A configuração "Restricted" é gravada no Registro, mas como ela entra em conflito com uma diretiva de grupo, ela não entra em vigor, embora seja mais restritiva que a diretiva.





Exemplo 3

C:\PS>invoke-command -computername Server01 -scriptblock {get-executionpolicy} | set-executionpolicy -force

Descrição
-----------
Esse comando obtém a diretiva de execução de um computador remoto e a aplica ao computador local.

O comando usa o cmdlet Invoke-Command para enviar o comando para o computador local. Como você pode enviar um objeto ExecutionPolicy (Microsoft.PowerShell.ExecutionPolicy) para Set-ExecutionPolicy, o comando Set-ExecutionPolicy não necessita de um parâmetro ExecutionPolicy.

O comando não tem um parâmetro Force que suprime o aviso de usuário.





Exemplo 4

C:\PS>set-executionpolicy -scope CurrentUser -executionPolicy AllSigned -force

C:\PS> get-executionpolicy -list

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

C:\PS> get-executionpolicy
AllSigned

Descrição
-----------
Este exemplo mostra como definir uma diretiva de execução para um escopo específico.

O primeiro comando usa o cmdlet Set-ExecutionPolicy para definir uma diretiva de execução de AllSigned para o usuário atual. Ele usa o parâmetro Force para suprimir os avisos de usuário.

O segundo comando usa o parâmetro List de Get-ExecutionPolicy para que as diretivas de execução sejam definidas em cada escopo. O resultado mostra que a diretiva de execução definida para o usuário atual difere da diretiva de execução definida para todos os usuários do computador. 

O terceiro comando usa o cmdlet Get-ExecutionPolicy sem parâmetros para obter a diretiva de execução que está em vigor para o usuário atual no computador local. O resultado confirma que a diretiva de execução definida para o usuário atual tem precedência sobre uma diretiva de execução definida para todos os usuários.





Exemplo 5

C:\PS>set-executionpolicy -scope CurrentUser -executionPolicy Undefined

Descrição
-----------
Esse comando usa um valor de diretiva de execução de Undefined para remover efetivamente a diretiva de execução definida para o escopo de usuário atual. Consequentemente, a diretiva de execução definida em Diretiva de Grupo ou no escopo de LocalMachine (todos os usuários) entra em vigor.

Se você definir a diretiva de execução em todos os escopos para Undefined e a Diretiva de Grupo não estiver definida, a diretiva de execução padrão, Restricted, entrará em vigor para todos os usuários do computador.





Consulte também

Conceitos

Get-ExecutionPolicy
Set-AuthenticodeSignature
Get-AuthenticodeSignature
about_Execution_Policies
about_Signing