Digitale Signierung von PowerShell-Skripten

Logo PowerShellViele 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.ps1Set-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!

 

 

%d Bloggern gefällt das: