Assinar os scripts digitalmente no Windows PowerShell

Concluído

Quando você usa scripts do Windows PowerShell no seu ambiente de produção, deve haver um processo de aprovação para verificar se esses scripts foram testados. O processo de aprovação variará dependendo do tamanho da organização e do nível de burocracia, mas deve haver algum processo de aprovação.

Um modo de formalizar o processo de aprovação para scripts usados em um ambiente de produção é assinar digitalmente os scripts e usar a política de execução de script AllSigned. Quando você implementa essa política, todos os scripts modificados devem ser atualizados com uma nova assinatura digital. Isso impede que administradores ou outras equipes façam alterações aleatórias de script. Por exemplo, se a sua organização tiver um conjunto de scripts aprovados para gerenciar usuários do AD DS (Active Directory Domain Services), essa configuração impedirá que a equipe de assistência técnica modifique os scripts de propósito ou por acidente.

Para adicionar uma assinatura digital a um script, você deve ter um certificado de assinatura de código confiável para todos os computadores que executarão o script. Você pode obter um certificado de assinatura de código confiável de uma autoridade de certificação pública. Você também pode obter um certificado de assinatura de código de uma autoridade de certificação interna confiável para os computadores.

Adicione uma assinatura digital usando o cmdlet Set-AuthenticodeSignature, conforme o seguinte código mostra:

$cert =  Get-ChildItem -Path "Cert:\CurrentUser\My" -CodeSigningCert
Set-AuthenticodeSignature -FilePath "C:\Scripts\MyScript.ps1" -Certificate $cert