Signature de scripts PowerShell / Signing PowerShell Scripts

Go to English version

L’article https://devblogs.microsoft.com/scripting/hey-scripting-guy-how-can-i-sign-windows-powershell-scripts-with-an-enterprise-windows-pki-part-1-of-2/ (Partie 2) explique, de manière détaillée, la démarche et l’infrastructure à mettre en place pour signer des scripts PowerShell avec une PKI Microsoft.

Si vous souhaitez rapidement monter un lab de test (via AutomatedLab) je vous propose le script suivant qui vous suit les recommandations évoquées dans les articles sus-mentionnés.

L’environnement est composé de 4 serveurs :

  • DC01 : Contrôleur de domaine (contoso.com)
  • CA01 : Autorité de certificats
  • DEV01 : Poste de développement PowerShell utilisé par le compte « CONTOSO\DevUser »
  • CLIENT01 : Poste client utilisé par le compte « CONTOSO\ClientUser »

Un mot de passe unique est utilisé pour tous les comptes (« P@ssw0rd » sans les guillemets)

Le script se charge de la mise en place de l’environnement :

  • Un certificate de type CodeSigning est émis (par CA01) pour le compte « CONTOSO\DevUser » sur DEV01
  • Ce certificat est utilisé pour signer le script SignedScript.ps1 présent sur le bureau de « CONTOSO\DevUser »
  • Ce script est copié sur le bureau de « CONTOSO\ClientUser » sur CLIENT01

Il ne vous reste plus qu’à lancer ce script depuis CLIENT01 (en tant que « CONTOSO\ClientUser ») et de tester.

The article https://devblogs.microsoft.com/scripting/hey-scripting-guy-how-can-i-sign-windows-powershell-scripts-with-an-enterprise-windows-pki-part-1-of-2/ (Part 2) explains, in detail, the process and the infrastructure to be set up to sign PowerShell scripts with a Microsoft PKI.

If you want to quickly set up a test lab (via AutomatedLab) I suggest the following script which follows the recommendations mentioned in the above-mentioned articles.

The environment is made up of 4 servers:

  • DC01: Domain Controller (contoso.com)
  • CA01: Certificate authority
  • DEV01: PowerShell development machine used by the « CONTOSO \ DevUser » account
  • CLIENT01: Client machine used by the « CONTOSO \ ClientUser » account

A unique password is used for all accounts (« P @ ssw0rd » without quotes)

The script takes care of setting up the environment:

  • A CodeSigning type certificate is issued (by CA01) for the « CONTOSO \ DevUser » account on DEV01
  • This certificate is used to sign the SignedScript.ps1 script found on the desktop of « CONTOSO \ DevUser »
  • This script is copied to the desktop of « CONTOSO \ ClientUser » on CLIENT01

All you have to do is run this script from CLIENT01 (as « CONTOSO\ClientUser ») and test.

Aller à la version française

Laurent.

Feel free to share:)