Descripción del error
This error occurs when you attempt to establish a remote Windows PowerShell or WinRM (Windows Remote Management) session using a specific certificate thumbprint for authentication, but your command or configuration fails to explicitly instruct the WinRM client to actually transmit that client certificate.
Por defecto, WinRM requiere una bandera programática específica llamada WSManFlagUseClientCertificate (o su parámetro equivalente en los cmdlets de PowerShell) para estar activo cada vez que se proporciona una huella dactilar de certificado. Sin esta bandera, el cliente WinRM detecta una contradicción: usted le dijo el cual Certificado para usar, pero usted no lo dio el permiso para utilizar la autenticación de certificados de cliente.
Soluciones paso a paso
Método 1: Añadir el parámetro -CertificateThumbprint en PowerShell
Si está usando el New-PSSession - ¿ Qué ? Enter-PSSession cmdlets, debe asegurarse de que está utilizando la configuración correcta de parámetros que obliga a la bandera del certificado del cliente a activarse.
- Open PowerShell como un administrador.
- Modify su comando de conexión para incluir tanto el
-CertificateThumbprintY el-UseSSLlos parámetros. - Run el comando usando esta estructura exacta:
$thumbprint = "YOUR_CERTIFICATE_THUMBPRINT_HERE" New-PSSession -ComputerName "TARGET_COMPUTER_NAME" -CertificateThumbprint $thumbprint -UseSSLNota: Especificar
-CertificateThumbprintactiva de forma nativa las banderas de certificados de cliente WSMan requeridas bajo el capó en las versiones modernas de PowerShell.
Método 2: Configurar opciones de sesión wsman exclusivamente
Si usted está escribiendo un guión utilizando New-WSManSessionOption, debe definir explícitamente el mecanismo de autenticación para que la señal se pase al subsistema WinRM.
- Open su script o consola de PowerShell.
- Create un objeto de opción de sesión que especifica la autenticación del certificado del cliente:
$sessionOptions = New-WSManSessionOption -ClientCertificate - Pass Este objeto de opción en su comando de conexión usando el
-SessionOptionParámetro:New-PSSession -ComputerName "TARGET_COMPUTER_NAME" -CertificateThumbprint "YOUR_CERTIFICATE_THUMBPRINT_HERE" -SessionOption $sessionOptions -UseSSL
Método 3: Mapear el certificado al cliente WinRM (Política de ordenador local)
Si el error persiste, es posible que el cliente WinRM local no esté configurado para permitir o asignar certificados de cliente correctamente.
- Click el menú Inicio, escriba
cmdHaga clic derecho. Command Prompt, y seleccione Run as administrator. - Enable Autenticación de certificados de cliente en la configuración WinRM local ejecutando:
winrm set winrm/config/client/auth @{Certificate="true"} - Verify el cambio de configuración por ejecución:
winrm get winrm/config/client/auth - Ensure Eso es...
Certificate = trueaparece en la lista de salida.
Método 4: Verificar la ubicación de los certificados de origen y cliente de confianza
WinRM no pasará la bandera del certificado con éxito si el certificado no se encuentra en el almacén personal correcto o si el sistema operativo no confía en él.
- Press
Windows Key + R, tipocertlm.msc, y presiona Enter para abrir el Administrador de Certificados de Máquina Local. - Navigate ¿ Por qué ?
Personal- ¿Qué quieres decir?Certificatesy asegúrese de que su certificado de cliente está presente aquí y contiene una clave privada. - Navigate ¿ Por qué ?
Trusted Root Certification Authorities- ¿Qué quieres decir?Certificatesy asegúrese de que el certificado raíz que firmó su certificado de cliente se enumera aquí. - Restart el servicio WinRM para aplicar cambios de sistema ejecutando este comando en el Prompt de comandos del administrador:
net stop winrm && net start winrm
Puede haber algunos errores.. Learn Microsoft