J'exécute la commande suivante dans PowerShell:
Invoke-Expression "openssl pkcs12 -in $certCN.pfx -nocerts -nodes -out $certCN.key -password pass:1111"
Cela fonctionne bien, mais la sortie de openssl
provoque des erreurs de console moches:
openssl : MAC verified OK
At line:1 char:1
+ openssl pkcs12 -in www.mywebsite.com.pfx -nocerts -node ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (MAC verified OK:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
Quelle est la meilleure façon d'exécuter cette commande OpenSSL et que la sortie soit ignorée ou du moins pas interprétée comme une commande?
Vous n'avez pas besoin de Invoke-Expression
(en fait, ce n'est pas recommandé sauf dans des cas spécifiques car il est sensible à l'injection). Exécutez simplement la commande et citez les paramètres où vous avez besoin d'une extension de chaîne variable:
openssl pkcs12 -in "$certCN.pfx" -nocerts -nodes -out "$certCN.key" -password pass:1111
Pour ignorer la sortie de la commande, une technique courante consiste à diriger vers Out-Null
.