Behebung: Signierte PowerShell-Cmdlets werden langsamer ausgeführt als unsignierte Cmdlets

Ein Cmdlet ist ein einfacher Befehl, der in der Windows PowerShell - Umgebung verwendet wird. Die Windows PowerShell -Laufzeit ruft diese Cmdlets im Kontext von Automatisierungsskripts auf, die in der Befehlszeile bereitgestellt werden. Die Windows PowerShell- Laufzeit ruft sie auch programmgesteuert über Windows PowerShell-APIs auf . Im heutigen Beitrag werden wir die Ursache identifizieren und dann die Problemumgehung für das Problem bereitstellen, dass signierte PowerShell-Cmdlets unter (PowerShell cmdlets)Windows langsamer ausgeführt werden als nicht signierte Cmdlets .

Cmdlets führen eine Aktion aus und geben normalerweise ein Microsoft .NET Framework- Objekt an den nächsten Befehl in der Pipeline zurück. Um ein Cmdlet zu schreiben, müssen Sie eine Cmdlet-Klasse implementieren, die von einer von zwei spezialisierten Cmdlet-Basisklassen abgeleitet ist. Die abgeleitete Klasse muss:

  • Deklarieren(Declare) Sie ein Attribut, das die abgeleitete Klasse als Cmdlet identifiziert.
  • Definieren Sie(Define) öffentliche Eigenschaften, die mit Attributen ausgestattet sind, die die öffentlichen Eigenschaften als Cmdlet-Parameter identifizieren.
  • Überschreiben Sie eine oder mehrere Eingabeverarbeitungsmethoden, um Datensätze zu verarbeiten.

Signierte PowerShell -Cmdlets werden langsamer ausgeführt als nicht signierte Cmdlets

Sie werden feststellen, dass signierte Windows PowerShell -Cmdlets langsamer ausgeführt werden als unsignierte Cmdlets.

Dieses Problem tritt auf, weil der Computer keine Verbindung zu den folgenden Adressen für die Überprüfung der Certificate Trust List ( CTL ) herstellen kann:(CTL)

http://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/disallowedcertstl.cab

http://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/authrootstl.cab

Dies tritt auf, wenn ein Netzwerkproblem vorliegt. Beispielsweise liegen falsche Proxy-Einstellungen vor.

Gehen Sie wie folgt vor, um dieses Problem zu umgehen:

Signierte PowerShell-Cmdlets werden langsamer ausgeführt als nicht signierte Cmdlets

  • Drücken Sie die Windows - Taste + R. Geben Sie im Dialogfeld Ausführen (Run)gpedit.msc ein(gpedit.msc) und drücken Sie die Eingabetaste, um den Editor für lokale Gruppenrichtlinien zu öffnen(open Local Group Policy Editor) .
  • Navigieren Sie zum folgenden Pfad:

Computer Configuration > Windows Settings > Security Settings > Public Key Policies

  • Doppelklicken Sie im Detailbereich auf der rechten Seite auf Certificate Path Validation Settings .
  • Wählen Sie die Registerkarte Netzwerkabruf aus .(Network Retrieval)
  • Aktivieren Sie das Kontrollkästchen Diese Richtlinieneinstellungen definieren(Define these policy settings) .
  • Deaktivieren Sie das Kontrollkästchen Zertifikate im Microsoft Root Certificate Program automatisch aktualisieren (empfohlen)(Automatically update certificates in the Microsoft Root Certificate Program (recommended) ) .
  • Klicken Sie auf Anwenden(Apply) > OK.

Sie können den Editor für lokale Gruppenrichtlinien(Local Group Policy Editor) jetzt beenden .

That’s it!



About the author

Ich bin Softwareentwickler und Entdecker. Ich habe Erfahrung sowohl mit der Microsoft Xbox 360 als auch mit dem Google Explorer. Ich bin in der Lage, Expertenempfehlungen für bestimmte Softwareentwicklungstools zu geben und Menschen bei der Behebung häufiger Explorer-Fehler zu helfen.



Related posts