Ich kann meine Skripte scheinbar nicht dazu bringen, sich in PowerShell anzumelden. Ich habe ein gültiges Codesignaturzertifikat auf meinem Computer installiert und führe die folgenden Befehle aus. Irgendwelche Vorschläge?
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
quelle
quelle
Antworten:
Herausgefunden. Die Skriptdatei wurde mit PowerShell ISE erstellt, und anscheinend können Sie in PowerShell ISE erstellte Skripte nicht signieren, oder genauer gesagt, Sie können keine mit Unicode Big Endian codierten Dateien signieren, was die Standardeinstellung für ISE ist. Es gibt eine Problemumgehung, um die im Link dokumentierte Standardcodierung zu ändern.
Ursprünglich zur Frage von Chad Miller hinzugefügt . Das Update wurde auf eine Antwort verschoben, sodass diese Frage nicht mehr als unbeantwortet angezeigt wird.
quelle
Sie können eine Datei als bestimmte Codierung in der Powershell ISE mit der .Save () -Methode des ISEFile-Objekts speichern:
Wenn Sie Ihrem ISE-Profil Folgendes hinzufügen, können Sie einfach Strg-Umschalt-S drücken, um eine andere Standardcodierung für Ihre Skripte zu erhalten:
Hier ist ein Quickie-Code zum Erstellen Ihres Profils, falls es nicht vorhanden ist, und zum Hinzufügen des Menüs. Führen Sie diesen Code in der ISE aus, oder fügen Sie Ihrem ConsoleHost-Profil einfach Junk hinzu, bei dem nur ein Fehler auftritt:
quelle