Poprawka: podpisane polecenia cmdlet PowerShell działają wolniej niż niepodpisane polecenia cmdlet

Polecenie cmdlet to lekkie polecenie używane w środowisku Windows PowerShell . Środowisko uruchomieniowe Windows PowerShell wywołuje te polecenia cmdlet w kontekście skryptów automatyzacji dostępnych w wierszu polecenia. Środowisko uruchomieniowe Windows PowerShell(Windows PowerShell) również wywołuje je programowo za pośrednictwem interfejsów API Windows PowerShell(Windows PowerShell APIs) . W dzisiejszym poście zidentyfikujemy przyczynę, a następnie przedstawimy obejście problemu z podpisanymi poleceniami cmdlet PowerShell(PowerShell cmdlets) , które działają wolniej niż niepodpisane polecenia cmdlet w systemie Windows(Windows) .

Polecenia cmdlet wykonują akcję i zazwyczaj zwracają obiekt Microsoft .NET Framework do następnego polecenia w potoku. Aby napisać polecenie cmdlet, należy zaimplementować klasę poleceń cmdlet, która pochodzi z jednej z dwóch wyspecjalizowanych klas bazowych poleceń cmdlet. Klasa pochodna musi:

  • Zadeklaruj(Declare) atrybut, który identyfikuje klasę pochodną jako polecenie cmdlet.
  • Zdefiniuj(Define) właściwości publiczne, które są ozdobione atrybutami, które identyfikują właściwości publiczne jako parametry polecenia cmdlet.
  • Zastąp jedną lub więcej metod przetwarzania danych wejściowych, aby przetworzyć rekordy.

Podpisane polecenia cmdlet programu PowerShell działają wolniej niż niepodpisane polecenia cmdlet

Zauważysz, że podpisane polecenia cmdlet programu Windows PowerShell(Windows PowerShell) działają wolniej niż niepodpisane polecenia cmdlet.

Ten problem występuje, ponieważ komputer nie może połączyć się z następującymi adresami w celu weryfikacji listy zaufania certyfikatów(Certificate Trust List) ( 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

Dzieje się tak, gdy istnieje problem z siecią. Na przykład są nieprawidłowe ustawienia proxy.

Aby obejść ten problem, wykonaj następujące czynności:

Podpisane polecenia cmdlet programu PowerShell działają wolniej niż niepodpisane polecenia cmdlet

  • Naciśnij klawisz Windows + R. W oknie dialogowym Uruchom wpisz (Run)gpedit.msc i naciśnij Enter, aby otworzyć Edytor lokalnych zasad grupy(open Local Group Policy Editor) .
  • Przejdź do ścieżki poniżej:

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

  • W okienku szczegółów po prawej stronie kliknij dwukrotnie Ustawienia weryfikacji ścieżki certyfikatu(Certificate Path Validation Settings) .
  • Wybierz kartę Pobieranie z sieci(Network Retrieval) .
  • Zaznacz pole wyboru Zdefiniuj te ustawienia zasad(Define these policy settings) .
  • Usuń zaznaczenie pola wyboru Automatycznie aktualizuj certyfikaty w programie Microsoft Root Certificate (zalecane)(Automatically update certificates in the Microsoft Root Certificate Program (recommended) ) .
  • Kliknij Zastosuj(Apply) > OK.

Możesz teraz wyjść z Edytora lokalnych zasad grupy(Local Group Policy Editor) .

That’s it!



About the author

Jestem informatykiem skupiającym się na prywatności i kontach użytkowników oraz bezpieczeństwie rodziny. Od kilku lat pracuję nad poprawą bezpieczeństwa smartfonów i mam doświadczenie w pracy z firmami zajmującymi się grami. Wielokrotnie pisałem też o problemach związanych z kontami użytkowników i grami.



Related posts