Powershell-certificat
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Domaine | Signature de scripts PowerShell |
| Outils | makecert.exe, Set-AuthenticodeSignature
|
| Voir aussi | Set-ExecutionPolicy |
Signer un script PowerShell permet de l'exécuter sous une politique d'exécution
AllSigned ou RemoteSigned. Cela repose sur un certificat de signature de code.
Créer un certificat
Création d'un certificat racine auto-signé :
makecert.exe -n "CN=Certificat Racine Powershell" -a sha1 -eku 1.3.6.1.5.5.7.3.3 -r -sv root.pvk root.cer -ss Root -sr localmachine
-n nom du publicateur -a algorithme de chiffrement -eku OID de l'objet (signature de code) -r certificat auto-signé -sv fichier .pvk de clé privée associé au certificat .cer -ss nom du magasin de certificats de destination -sr emplacement du magasin dans le registre
La machine devient un fournisseur de certificat non récupérable : il faut exporter les clés.
makecert.exe -pe -n "CN=Mon entreprise" -ss MY -a sha1 -eku 1.3.6.1.5.5.7.3.3 -iv root.pvk -ic root.cer
-pe rend la clé privée exportable -iv spécifie le fichier de clé privée -ic spécifie le certificat racine
Signer un script
Get-ChildItem cert: -Recurse -CodeSigningCert
$cert = Get-ChildItem cert:\CurrentUser\my -CodeSigningCert
Set-AuthenticodeSignature 'c:\temp\monscript.ps1' -Certificate $cert
Exporter / importer
Via la console de certificats (certmgr.msc), il peut être nécessaire de faire des
export/import de certificat sur les machines concernées. Une GPO peut aussi être appliquée
(gpmc.msc).
Voir aussi
- Set-ExecutionPolicy — politique d'exécution des scripts