O que pode fazer com que a política de execução do Powershell não seja levada em consideração?

2

Temos em nossa infraestrutura vários scripts do PowerShell usados para várias tarefas, desde o login do usuário até o técnico de suporte que simula um contexto de usuário.

Esses scripts são centralizados em nosso servidor de arquivos (por meio do DFS) para facilitar o gerenciamento. Alguns deles são executados no logon, alguns são executados através de aplicativos Citrix publicados.

Aplicamos uma política para todo o domínio e todos os usuários que define a política de execução do Powershell como "irrestrita" para que os scripts possam ser executados a partir do servidor de arquivos.

Isso funciona perfeitamente bem para scripts de logon (pelo menos até agora), mas para scripts que são executados posteriormente (geralmente através de um aplicativo publicado, mas o mesmo se aplica ao usar serviços de terminal e uma área de trabalho completa), os resultados são inconsistentes: alguns os usuários podem executar o script bem, alguns são sempre solicitados no console do powershell para permitir que os scripts sejam executados.

Não consigo encontrar nada que possa causar esse comportamento e é realmente inconsistente: se eu iniciar o powershell manualmente e executar get-executionpolicy , me disseram que a política atual é unrestricted . No entanto, se a partir da mesma sessão eu tentar executar um script por meio de um programa que chame powershell <script file name> <parameters> , serei avisado antes que o script possa ser executado.

O que poderia causar tal comportamento?

    
por Stephane 02.08.2013 / 15:21

1 resposta

4

Suponho que o aviso que você está vendo se parece com isso:

Security Warning Run only scripts that you trust. While scripts from the Internet can be useful, this script can potentially harm your computer. Do you want to run \server\scripts\my.ps1? [D] Do not run [R] Run once [S] Suspend [?] Help (default is "D"): d

Se você executar "get-help about_execution_policies", verá o comportamento de "Irrestrito" definido como:

 Unrestricted
 - Unsigned scripts can run. (This risks running malicious
   scripts.)

 - Warns the user before running scripts and configuration
   files that are downloaded from the Internet.

Mesmo quando definido como Irrestrito, o PowerShell solicitará que você execute scripts que acredita terem sido baixados da Internet - isso pode incluir scripts sendo chamados de caminhos UNC. Você pode ajustar o comportamento ajustando as zonas de segurança do Internet Explorer no computador (sim, realmente) e / ou configurando políticas de segurança de acesso ao código .NET no sistema usando o caspol.exe.

Aqui estão alguns links úteis se esse for o aviso que você está vendo:

link

link

link

    
por 02.08.2013 / 16:11

Tags