Signer les scripts numériquement dans Windows PowerShell

Effectué

Quand vous utilisez des scripts Windows PowerShell dans votre environnement de production, un processus d’approbation doit vérifier que ces scripts ont été testés. Même s’il varie selon la taille de l’organisation et le niveau de bureaucratie, un processus d’approbation doit être appliqué.

Une façon de formaliser le processus d’approbation des scripts utilisés dans un environnement de production consiste à signer numériquement les scripts et à utiliser la stratégie d’exécution de script AllSigned . Quand vous implémentez cette stratégie, tous les scripts modifiés doivent être mis à jour avec une nouvelle signature numérique. Ceci empêche les administrateurs ou d’autres membres d’équipe d’apporter des modifications de script aléatoires. Par exemple, si votre organisation dispose d’un ensemble de scripts approuvés pour la gestion des utilisateurs AD DS (Active Directory Domain Services), cette configuration empêche l’équipe du support technique de modifier les scripts (volontairement ou non).

Pour ajouter une signature numérique à un script, vous devez disposer d’un certificat de signature de code approuvé par tous les ordinateurs qui exécuteront le script. Vous pouvez obtenir un certificat de signature de code approuvé auprès d’une autorité de certification publique. Vous pouvez également obtenir un certificat de signature de code auprès d’une autorité de certification interne approuvée par les ordinateurs.

Vous ajoutez une signature numérique à l’aide de l’applet de commande Set-AuthenticodeSignature , comme le montre le code suivant :

$cert =  Get-ChildItem -Path "Cert:\CurrentUser\My" -CodeSigningCert
Set-AuthenticodeSignature -FilePath "C:\Scripts\MyScript.ps1" -Certificate $cert