Digitales Signieren der Skripts in Windows PowerShell
Wenn Sie Windows PowerShell-Skripts in Ihrer Produktionsumgebung verwenden, sollte anhand eines Genehmigungsprozesses überprüft werden, ob diese Skripts getestet wurden. Der Genehmigungsprozess hängt von der Größe der Organisation und dem Verwaltungsaufwand ab, aber es grundsätzlich sollte ein gewisser Genehmigungsprozess vorhanden sein.
Eine Möglichkeit zum Formalisieren des Genehmigungsprozesses für Skripts, die in einer Produktionsumgebung verwendet werden, besteht darin, die Skripts digital zu signieren und die AllSigned-Skriptausführungsrichtlinie zu verwenden. Wenn Sie diese Richtlinie implementieren, müssen alle geänderten Skripts mit einer neuen digitalen Signatur aktualisiert werden. Dadurch wird verhindert, dass Administrator*innen oder anderes Personal zufällige Skriptänderungen vornehmen. Wenn Ihre Organisation beispielsweise über eine Reihe genehmigter Skripts für die Verwaltung von Active Directory Domain Services-Benutzer*innen (AD DS) verfügt, verhindert diese Konfiguration, dass das Helpdeskteam die Skripts entweder vorsätzlich oder versehentlich ändern.
Wenn Sie einem Skript eine digitale Signatur hinzufügen möchten, benötigen Sie ein Codesignaturzertifikat, das von allen Computern, auf denen das Skript ausgeführt wird, als vertrauenswürdig eingestuft wird. Sie können ein vertrauenswürdiges Codesignaturzertifikat bei einer öffentlichen Zertifizierungsstelle erhalten. Alternativ besteht die Möglichkeit, ein Codesignaturzertifikat von einer internen Zertifizierungsstelle zu erhalten, die von den Computern als vertrauenswürdig eingestuft wird.
Sie fügen eine digitale Signatur mithilfe des Cmdlets Set-AuthenticodeSignature hinzu, wie der folgende Code zeigt:
$cert = Get-ChildItem -Path "Cert:\CurrentUser\My" -CodeSigningCert
Set-AuthenticodeSignature -FilePath "C:\Scripts\MyScript.ps1" -Certificate $cert