Não consigo obter meus scripts para entrar no PowerShell. Eu tenho um certificado de assinatura de código válido instalado na minha máquina e execute os seguintes comandos. Alguma sugestão?
PS C:\Users\u00\bin> $cert = @(Get-ChildItem cert:\CurrentUser\My -codesigning)[0]
PS C:\Users\u00\bin> $cert | fl
Subject : E=operations@contoso.com, CN=contoso , OU=Operations, O=contoso,
L=Mayberry, S=Florida, C=US
Issuer : CN=contoso Intermediate CA1, DC=contoso, DC=com
Thumbprint : XXXXXXXXXXXXXXXXXXXXX
FriendlyName : contoso
NotBefore : 7/20/2010 12:58:55 AM
NotAfter : 7/20/2011 12:58:55 AM
Extensions : {System.Security.Cryptography.Oid, System.Security.Cryptography.Oid, System.Security.Cryptography.Oi
ystem.Security.Cryptography.Oid...}
PS C:\Users\u00\bin> Set-AuthenticodeSignature .\testsign.ps1 -Certificate $cert
Directory: C:\Users\u00\bin
SignerCertificate Status Path
----------------- ------ ----
UnknownError testsign.ps1
PS C:\Users\u00\bin> Get-AuthenticodeSignature .\testsign.ps1
Directory: C:\Users\u00\bin
SignerCertificate Status Path
----------------- ------ ----
NotSigned testsign.ps1
powershell
Chad Miller
fonte
fonte
Respostas:
Descobri isso. O arquivo de script foi criado usando o PowerShell ISE e, aparentemente, você não pode assinar scripts criados no PowerShell ISE ou, com mais precisão, não pode assinar arquivos codificados Unicode Big Endian, que é o padrão para o ISE. Há uma solução alternativa para alterar a codificação padrão, conforme documentado no link.
Originalmente adicionado à pergunta por Chad Miller . Realocou sua atualização para uma resposta, para que esta pergunta não seja mais respondida.
fonte
Você pode salvar um arquivo como uma codificação específica de dentro do Powershell ISE com o método .Save () do objeto ISEFile:
Se você adicionar o seguinte ao seu perfil ISE, basta pressionar Ctrl-Shift-S para obter uma codificação padrão diferente para seus scripts:
Aqui está um código rápido para criar seu perfil, se ele não existir, e adicionar o menu. Execute este código de dentro do ISE ou você simplesmente adicionará lixo ao seu perfil do ConsoleHost, onde ocorrerá apenas um erro:
fonte