J'utilise une commande comme ceci: La commande me demande de remplir l'invite. Mais je ne peux pas faire cela dans mon script (test.ps1 pour ex) p> Ce dont j'ai besoin, c'est comme ça: p> ou quelque chose de similaire Je peux exécuter mon script sans remplir l'invite à chaque fois p> Je suis très reconnaissant pour toute réponse p> p>
5 Réponses :
Il n'y a pas de paramètre de mot de passe, vous pouvez essayer avec une classe .NET:
[NOID] [System.reflection.Assemblier] :: LoadwithPartialName ("" System.w Indows.Forms ") [System.windows.Forms.Sendkeys] :: Sendwait (" 123456 ~ ")
Cela résoudrait également le problème, mais pas assez bon pour moi, car si get-pfxcertificate ne demande pas l'invite, la commande ci-dessus exposera mon mot de passe. Votre solution est vraiment bonne. Merci beaucoup
@NGUBK, vous pouvez utiliser lish-host-hôte code> pour inviter le mot de passe. Stackoverflow.com/a/30602978/124069
Merci à Shay pour me pointer dans la bonne direction. Mon besoin consistait à obtenir la pinceau du fichier PFX, alors j'ai utilisé la faude non persistante. Les tests de la PS3 de 2012 échouent à moins que l'ensemble clé est pleinement qualifié. En outre, un espace vide entre l'importation et la parenthèse gauche, c'est-à-dire "" $ cert.import ^^ (sys ... "provoque une erreur. Presque piquant, prequy.
Mon mot de passe PFX est crypté dans la source. Je le déchiffrer au moment de l'exécution, donc ce n'est pas visible dans la silvèle. P>
Set-StrictMode -Version Latest [string] $strPW = '123456' [string] $strPFX = 'C:\MyCert.pfx' $cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 $cert.Import($strPFX,$strPW,[System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]"DefaultKeySet") $cert.Thumbprint
Cela fonctionne également à l'aide de Native PowerShell au lieu de .NET:
$securePassword = ConvertTo-SecureString -String $strPW -Force -AsPlainText $cert = Import-PfxCertificate -FilePath $strPFX cert:\LocalMachine\My -Password $securePassword
L'OP n'utilise pas importer code>, ils utilisent obtenez code> qui n'a pas le paramètre de mot de passe par défaut.
En effet, cette réponse est déroutante. La cmdlet Native Get-PFXcertificate de PowerShell 3.0 fournit beaucoup de fonctionnalités sur le fichier .pfx, mais ne permet pas de transmettre un mot de passe en tant que séchage. Cette réponse concerne la cmdlet Import-PFXcertificate de Module PKI, qui accepte un paramètre de mot de passe, mais manque de fonctionnalité en comparaison.
Une autre option consiste à étendre les capacités de et maintenant, vous pouvez l'appeler p> En outre, si vous avez toujours besoin de l'invite, vous pouvez faire quelque chose comme ça. P> get-pfxcertificate code>, permettant essentiellement le mot de passe à transmettre. $pwd = Read-Host 'Please enter your SSL Certificate password.'
Get-PfxCertificate 'C:\path\to\cert.pfx' $pwd
Il existe maintenant une commande Le L'exemple suivant convertit une chaîne normale en un objet de séchage, chargez les certificats d'un fichier, puis Attribue le premier ou seul certificat de fin à la variable $ Signingcert: p> Vous pouvez maintenant appliquer $ Signingcert sans être invitée pour le mot de passe. P> P> get-pfxdata code> dans PowerShell qui obtient le certificat et la chaîne. La commande comprend un paramètre -password code> qui prend un objet de séchage de séchage afin que vous puissiez éviter d'être invité. EndentityCertificats code> La propriété contient une gamme de certificats à la fin du certificat chaîne et contiendra le même objet de certificat créé par la commande get-pfxcertificate code>. p>