Correzione: i cmdlet di PowerShell firmati vengono eseguiti più lentamente dei cmdlet non firmati

Un cmdlet è un comando leggero utilizzato nell'ambiente Windows PowerShell . Il runtime di Windows PowerShell richiama questi cmdlet nel contesto degli script di automazione forniti nella riga di comando. Il runtime di Windows PowerShell li richiama anche a livello di codice tramite le API di Windows PowerShell(Windows PowerShell APIs) . Nel post di oggi, identificheremo la causa e quindi forniremo una soluzione alternativa al problema dei cmdlet di PowerShell(PowerShell cmdlets) firmati che funzionano più lentamente rispetto ai cmdlet non firmati in Windows .

I cmdlet eseguono un'azione e in genere restituiscono un oggetto Microsoft .NET Framework al comando successivo nella pipeline. Per scrivere un cmdlet, è necessario implementare una classe di cmdlet che deriva da una delle due classi base di cmdlet specializzate. La classe derivata deve:

  • Dichiara(Declare) un attributo che identifichi la classe derivata come cmdlet.
  • Definire(Define) le proprietà pubbliche decorate con attributi che identificano le proprietà pubbliche come parametri del cmdlet.
  • Eseguire l'override di uno o più metodi di elaborazione dell'input per elaborare i record.

I cmdlet di PowerShell(PowerShell) firmati vengono eseguiti più lentamente dei cmdlet non firmati

Noterai che i cmdlet di Windows PowerShell firmati vengono eseguiti più lentamente rispetto ai cmdlet non firmati.

Questo problema si verifica perché il computer non riesce a connettersi ai seguenti indirizzi per la verifica dell'elenco di certificati attendibili(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

Ciò si verifica quando si verifica un problema di rete. Ad esempio, sono presenti impostazioni proxy errate.

Per aggirare questo problema, procedere come segue:

I cmdlet di PowerShell firmati vengono eseguiti più lentamente dei cmdlet non firmati

  • Premi il tasto Windows + R. Nella finestra di dialogo Esegui , digita (Run)gpedit.msc e premi Invio per aprire l'Editor criteri di gruppo locali(open Local Group Policy Editor) .
  • Vai al percorso sottostante:

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

  • Nel riquadro dei dettagli a destra, fai doppio clic su Impostazioni di convalida del percorso del certificato(Certificate Path Validation Settings) .
  • Seleziona la scheda Recupero di rete .(Network Retrieval)
  • Selezionare la casella di controllo Definisci queste impostazioni dei criteri .(Define these policy settings)
  • Deseleziona la casella di controllo Aggiorna automaticamente i certificati nel programma Microsoft Root Certificate (consigliato) .(Automatically update certificates in the Microsoft Root Certificate Program (recommended) )
  • Fare clic su Applica(Apply) > OK.

È ora possibile uscire dall'Editor criteri di gruppo locali(Local Group Policy Editor) .

That’s it!



About the author

Sono un ingegnere del software con oltre 10 anni di esperienza nel lavoro su Apple iOS e dispositivi edge. La mia esperienza nell'ingegneria hardware mi ha appassionato nell'assicurarmi che i dispositivi dei nostri clienti siano il più affidabili e fluidi possibile. Ho scritto codice negli ultimi anni e ho imparato a usare Git, Vim e Node.js.



Related posts