Je n'arrive pas à obtenir mes scripts pour se connecter à PowerShell. J'ai un certificat de signature de code valide installé sur ma machine et exécute les commandes suivantes. Aucune suggestion?
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
la source
la source
Réponses:
Deviner. Le fichier de script a été créé à l'aide de PowerShell ISE et, apparemment, vous ne pouvez pas signer les scripts créés dans PowerShell ISE ou, plus précisément, vous ne pouvez pas signer les fichiers encodés Unicode Big Endian, qui est la valeur par défaut pour ISE. Il existe une solution de contournement pour modifier l'encodage par défaut, comme indiqué dans le lien.
Initialement ajouté à la question par Chad Miller . Déplacé sa mise à jour vers une réponse afin que cette question n'apparaisse plus comme sans réponse.
la source
Vous pouvez enregistrer un fichier en tant qu'encodage spécifique à partir de Powershell ISE avec la méthode .Save () de l'objet ISEFile:
Si vous ajoutez ce qui suit à votre profil ISE, vous pouvez simplement appuyer sur Ctrl-Maj-S pour obtenir un codage par défaut différent pour vos scripts:
Voici un code rapide pour créer votre profil s'il n'existe pas et ajouter le menu. Exécutez ce code à partir de l'ISE ou vous ajouterez simplement du courrier indésirable à votre profil ConsoleHost où il se contentera d'une erreur:
la source