Website-Icon Granikos GmbH & Co. KG

Digitale Signierung von PowerShell-Skripten

Viele Administratoren verzichten auf die digitale Signierung von eigene PowerShell-Skripten. Um solche PowerShell-Skripte in der lokalen IT-Infrastruktur ausführen zu können wird daher die PowerShell-Ausführungsrichtlinie auf Unrestricted konfiguriert. Diese Konfiguration ist ein großes Sicherheitsrisiko für das gesamte Unternehmen.

Wenn das digitale Zertifikat zur Code-Signierung in Ihrem persönlichen Zertifikatsspeicher hinterlegt ist, ist die Signierung besonders einfach.

Wechseln Sie in einer PowerShell_Session in das Verzeichnis, das die zu signierende PowerShell-Datei enthält und signieren Sie die Datei mit den folgenden Befehlen. In diesem Beispiel wird die Datei MyPowerShellScript.ps1 signiert.

# Lesen des Signatur-Zertifikates aus dem persönlichen Zertifikatspeicher
# des Anwenders, der die Signierung durchführt
$cert=Get-ChildItem -Path Cert:\CurrentUser\My -CodeSigningCert

# Lesen eines exportierten Signatur-Zertifikates aus einer PFX-Datei
# Wenn der Export mit einem Kennwort geschützt ist, werden Sie nach
# dem Kennwort gefragt
$cert = Get-PfxCertificate -FilePath C:\SCRIPTS\CERTS\CodeSigningVarunagroup.pfx

# Digitale Signierung der Datei MyPowerShellScript.ps1
Set-AuthenticodeSignature -FilePath MyPowerShellScript.ps1 -Certificate $cert

Wissenswert ist, dass das Cmdlet Get-PfxCertificate, im Gegensatz zur Dokumentation bei Microsoft Docs, keinen Parameter -Password verfügt, um das Kennwort als SecureString zu übergeben.

Signieren Sie eigene PowerShell-Skripte immer, um die IT-Betriebssicherheit in Ihrem Unternehmen sicherzustellen.

Verwenden Sie immer ein Code Signing-Zertifikat eines vertrauenswürdigen Drittanbieters.

Konfigurieren Sie nach der Signierung Ihrer PowerShell-Skripte die Ausführungsrichtlinie für Ihre Systeme mit Hilfe einer Gruppenrichtlinie

Links

Viel Spaß mit PowerShell!

Kurz-URL | Short URL: https://granikos.eu/go/kMhQ
Die mobile Version verlassen