Das Signieren einer PowerShell-Skriptdatei (PS1) erhöht das Vertrauen und die Sicherheit, indem die Identität des Herausgebers überprüft und sichergestellt wird, dass das Skript nicht manipuliert wurde. So signieren Sie ein PowerShell-Skript:
Voraussetzungen :
- Sie müssen über ein Codesignaturzertifikat verfügen. Wenn Sie keins haben, können Sie ein selbstsigniertes Zertifikat erhalten oder eines von einer vertrauenswürdigen Zertifizierungsstelle (CA) erwerben.
- Stellen Sie sicher, dass das PowerShell-Skript syntaktisch korrekt und fehlerfrei ist.
Schritte zum Signieren eines PowerShell-Skripts :
1. Erstellen Sie ein Zertifikat :
- Öffnen Sie die Windows PowerShell ISE (Integrated Scripting Environment) oder eine normale PowerShell-Konsole.
- Geben Sie den folgenden Befehl ein, um ein selbstsigniertes Codesignaturzertifikat zu generieren:
„Powershell
New-SelfSignedCertificate -DnsName [Ihre Domäne] -CertStoreLocation Cert:\CurrentUser\My
„
Ersetzen Sie [IhreDomain] durch Ihren Domainnamen.
2. Zertifikat exportieren :
– Geben Sie den folgenden Befehl ein, um das neu erstellte selbstsignierte Zertifikat als PFX-Datei zu exportieren:
„Powershell
Export-PfxCertificate -Cert [ThumbprintOfTheCertificate] -FilePath [OutputFilePath].pfx -Password [Passwort]
„
Ersetzen Sie [ThumbprintOfTheCertificate] durch den Fingerabdruck Ihres neu erstellten Zertifikats.
Ersetzen Sie [OutputFilePath] durch den gewünschten Speicherort für die exportierte PFX-Datei.
Ersetzen Sie [Passwort] durch ein sicheres Passwort für die PFX-Datei.
3. Signieren Sie das Skript :
- Geben Sie den folgenden Befehl ein, um Ihr Skript zu signieren. Ersetzen Sie [ScriptPath] durch den vollständigen Pfad zu Ihrer PowerShell-Skriptdatei (.ps1):
„Powershell
Set-AuthenticodeSignature -FilePath [ScriptPath] -Certificate ([Get-ChildItem -Path Cert:\CurrentUser\My | Where { $_.Subject -match 'CN=[YourDomain]' }) | Wählen Sie -Index 0) -Passwort [Passwort]
„
Ersetzen Sie [ScriptPath] durch den vollständigen Pfad zu Ihrer PowerShell-Skriptdatei (.ps1).
Ersetzen Sie [Passwort] durch das Passwort, das Sie beim Exportieren der PFX-Datei verwendet haben.
4. Signatur validieren :
- Geben Sie den folgenden Befehl ein, um die Skriptsignatur zu überprüfen:
„Powershell
Get-AuthenticodeSignature -FilePath [ScriptPath]
„
Dies bestätigt, dass das Skript signiert und validiert ist.
Zusätzliche Hinweise :
– Beim Ausführen des signierten Skripts erhält der Benutzer eine Aufforderung, dem Herausgeber zu vertrauen. Durch die Installation des Codesignaturzertifikats in ihrem vertrauenswürdigen Stammspeicher oder durch die Zulassung als Ausnahme können Benutzer das Skript als vertrauenswürdig akzeptieren.
– Bei Verwendung eines selbstsignierten Zertifikats wird eine Sicherheitswarnung angezeigt. Um das Vertrauen zu erhöhen, können Sie Ihr Zertifikat von einer vertrauenswürdigen Zertifizierungsstelle wie VeriSign oder DigiCert signieren lassen.
- Das signierte Skript kann sicher von anderen geteilt und verwendet werden. Wenn ein signiertes Skript ausgeführt wird, zeigt es die Informationen des Herausgebers an und bietet so die Gewissheit, dass es nicht geändert oder kompromittiert wurde.