Solución: los cmdlets de PowerShell firmados se ejecutan más lentamente que los cmdlets sin firmar

Un cmdlet es un comando ligero que se usa en el entorno de Windows PowerShell . El tiempo de ejecución de Windows PowerShell invoca estos cmdlets dentro del contexto de los scripts de automatización que se proporcionan en la línea de comandos. El tiempo de ejecución de Windows PowerShell también los invoca mediante programación a través de las API de Windows PowerShell(Windows PowerShell APIs) . En la publicación de hoy, identificaremos la causa y luego proporcionaremos la solución al problema de los cmdlets de PowerShell(PowerShell cmdlets) firmados que se ejecutan más lentamente que los cmdlets sin firmar en Windows .

Los cmdlets realizan una acción y, por lo general, devuelven un objeto de Microsoft .NET Framework al siguiente comando de la canalización. Para escribir un cmdlet, debe implementar una clase de cmdlet que derive de una de las dos clases base de cmdlet especializadas. La clase derivada debe:

  • Declare un atributo que identifique la clase derivada como un cmdlet.
  • Defina(Define) propiedades públicas que estén decoradas con atributos que identifiquen las propiedades públicas como parámetros de cmdlet.
  • Anule uno o más de los métodos de procesamiento de entrada para procesar registros.

Los cmdlets de PowerShell(PowerShell) firmados se ejecutan más lentamente que los cmdlets sin firmar

Notará que los cmdlets de Windows PowerShell firmados se ejecutan más lentamente que los cmdlets sin firmar.

Este problema ocurre porque la computadora no puede conectarse a las siguientes direcciones para la verificación de la lista de confianza de certificados(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

Esto ocurre cuando existe un problema de red. Por ejemplo, hay configuraciones de proxy incorrectas.

Para solucionar este problema, haga lo siguiente:

Los cmdlets de PowerShell firmados se ejecutan más lentamente que los cmdlets sin firmar

  • Presione la tecla de Windows + R. En el cuadro de diálogo Ejecutar , escriba (Run)gpedit.msc y presione Entrar para abrir el Editor de políticas de grupo local(open Local Group Policy Editor) .
  • Navegue a la ruta a continuación:

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

  • En el panel de detalles de la derecha, haga doble clic en Configuración de validación de ruta de certificado(Certificate Path Validation Settings) .
  • Seleccione la pestaña Recuperación de red .(Network Retrieval)
  • Marque la casilla de verificación Definir esta configuración de política(Define these policy settings) .
  • Desmarque la casilla de verificación Actualizar certificados automáticamente en el Programa de certificados raíz de Microsoft (recomendado)(Automatically update certificates in the Microsoft Root Certificate Program (recommended) ) .
  • Haga clic en Aplicar(Apply) > Aceptar.(OK.)

Ahora puede salir del Editor de directivas de grupo local(Local Group Policy Editor) .

That’s it!



About the author

Soy ingeniero telefónico con más de 10 años de experiencia en la industria móvil y me especializo en la reparación y actualización de teléfonos inteligentes. Mi trabajo ha incluido el desarrollo y mantenimiento del firmware del teléfono, el desarrollo de imágenes para dispositivos Apple y el trabajo en proyectos de Firefox OS. Con mis habilidades en desarrollo de software, ingeniería de hardware, procesamiento de imágenes y desarrollo de Firefox OS, tengo la capacidad de tomar problemas complejos y convertirlos en soluciones simples que funcionan en cualquier dispositivo.



Related posts