Bei der Ausführung von signierten PowerShell-Cmdlets, kann es im Vergleich zu unsignierten Cmdlets zu langen Wartezeiten kommen. Doch warum ist das so? Microsoft hat nun einen Hinweis herausgegeben, der genau dieses Problem beleuchten soll.
Laut einem Hinweis aus Redmond verbindet sich ein signiertes PowerShell-Cmdlet mit den folgenden Certificate Trust List (CTL)-URLs, um das angehängte Sicherheitszertifikat zu überprüfen.
http://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/disallowedcertstl.cab http://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/authrootstl.cab
Überprüfen auf Zertifikatsprüfungen
Ob sich ein Cmdlet mit einer der genannten CTL-URLs verbindet, lässt sich über den Befehl Get-AuthenticodeSignature -FilePath „path-to-file“ überprüfen.
Wenn euch das schreiben, einfach zu viel ist, haben wir noch eine Alternative für euch.
Navigiert im File Explorer zu der, dem Cmdlet zugeordneten DLL-Datei. Klickt nun mit der rechten Maustaste drauf und öffnet die „Eigenschaften“ -> „Digitale Signatur“. Nun sollte eine Information auftauchen, ob und mit welcher Certificate Trust List sich das Cmdlet verbindet.
Vorübergehende Behebung des Problems
Wollt Ihr unterbinden, dass die Zertifikatsprüfung ausgeführt wird, gibt Microsoft den Hinweis, eine neue Gruppenrichtlinie zu erstellen. Diese Richtlinie unterbindet, dass Windows die vertrauenswürdigen und nicht vertrauenswürdigen CTLs aktualisiert. So wird anschließend die Verzögerung, die durch die CTL Prüfung entsteht beseitigt, da die Signatur nicht überprüft wird.
Um die Gruppenrichtlinie zu erstellen, geht wie folgt vor:
- Öffnet über die Suche den „Gruppenrichtlinien Editor“
- Auf der linken Seite klickt Ihr nun unter dem Punkt Computer Konfiguration auf den Ordner Windows Einstellungen. Anschließend findet Ihr auf der rechten Seite des Fensters, den Eintrag Sicherheitseinstellungen dort klickt Ihr nun drauf.
- Im nächsten Schritt wählt Ihr den Ordner Public Key Policies
- Nun findet Ihr die Einstellung „Certificate Path Validation Settings“
- Nun öffnet sich ein neues Fenster mit den Einstellungen. Navigiert in diesem Fenster zum Reiter „Netzwerkeinstellungen“
- Dort aktiviert die Checkbox „Bearbeiten der Policy Einstellungen“
- Deaktiviert die Checkbox Zertifikate im Microsoft Root Certificate Program automatisch aktualisieren (empfohlen)
- Anschließend bestätigt Ihr eure Einstellungen mit OK
Nun sollten signierte Cmdlets wieder einwandfrei funktionieren.
Funktioniert der Tipp bei euch? Was sind eure Erfahrungen?