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