Parece que no puedo obtener mis scripts para iniciar sesión en PowerShell. Tengo un certificado de firma de código válido instalado en mi máquina y ejecuto los siguientes comandos. ¿Alguna sugerencia?
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
fuente
fuente
Respuestas:
Lo averigué. El archivo de secuencia de comandos se creó con PowerShell ISE y aparentemente no puede firmar secuencias de comandos creadas en PowerShell ISE o, más exactamente, no puede firmar archivos codificados Unicode Big Endian, que es el valor predeterminado para ISE. Hay una solución alternativa para cambiar la codificación predeterminada como se documenta en el enlace.
Originalmente agregado a la pregunta por Chad Miller . Reubicó su actualización a una respuesta para que esta pregunta ya no aparezca como sin respuesta.
fuente
Puede guardar un archivo como una codificación específica desde Powershell ISE con el método .Save () del objeto ISEFile:
Si agrega lo siguiente a su perfil ISE, puede presionar Ctrl-Shift-S para obtener una codificación predeterminada diferente para sus scripts:
Aquí hay un código rápido para crear su perfil si no existe y agregue el menú. Ejecute este código desde el ISE o simplemente agregará basura a su perfil de ConsoleHost donde simplemente se producirá un error:
fuente