Corrección de error de Windows: WinRM WSManEnumeratorAddObject Parámetro nulo
Descripción del error
Este error se produce cuando el cliente de administración remota de Windows (WinRM) intenta enumerar objetos, pero la estructura de datos devuelta por el servidor remoto o el proveedor local está dañada, inesperada o completamente nula. WinRM espera un objeto válido cuando el modo de enumeración está configurado para devolver los detalles del objeto ( Object - ¿ Qué ? ObjectAndEPR ) y de la Comisión).
Las causas más comunes incluyen:
- Corrupted WMI Repository: WinRM se basa en gran medida en la infraestructura de instrumentación de administración de Windows (WMI). Si WMI está dañado, pasa datos nulos a WinRM.
- Corrupted WinRM Configuration: Los oyentes de WinRM dañados o las configuraciones internas de WSMan dañadas.
- Incompatible PowerShell modules or broad queries: Un script o herramienta de gestión que consulta una infraestructura vasta que activa un caso de borde sin manejar o devuelve cargas útiles vacías donde se esperan datos.
Soluciones paso a paso
Siga estas soluciones en orden hasta que se resuelva el error.
Solución 1: Reiniciar y restablecer el servicio WinRM
La solución más rápida es reiniciar el servicio WinRM y reconstruir su configuración para borrar cualquier objeto de memoria atascado o dañado.
- Abre el menú Inicio, escribe cmd, haga clic derecho en Command Prompt, y seleccione Run as administrator.
- Detenga el servicio WinRM escribiendo el siguiente comando y presionando Enter:
net stop winrm - Reinicie el servicio WinRM:
net start winrm - Reinicie la configuración de WinRM a sus configuraciones predeterminadas ejecutando:
winrm quickconfig -q - Compruebe si el error sigue ocurriendo.
Solución 2: Verificar y reparar el repositorio WMI
Debido a que WinRM obtiene propiedades de objetos directamente de WMI, un repositorio WMI dañado a menudo causa el error de puntero nulo.
- Abierto. Command Prompt as administrator.
- Verifique la consistencia de su repositorio WMI ejecutando:
winmgmt /verifyrepository - Si la salida dice "El repositorio no es consistente" , ejecute el siguiente comando para repararlo:
winmgmt /salvagerepository - If salvaging fails, force a complete rebuild of the WMI repository with these commands (press Enter después de cada línea):
net stop winmgmt /y winmgmt /resetrepository net start winmgmt - Reinicie su computadora y pruebe su conexión WinRM de nuevo.
Solución 3: volver a registrar los componentes WMI y los archivos DLL
Si los componentes subyacentes de Windows no pueden serializar los datos WinRM correctamente, volver a registrar las bibliotecas de administración del sistema operativo lo solucionará.
- Abierto. Command Prompt as administrator.
- Ejecute el siguiente comando para volver a registrar todos los WMI
.mofarchivos:CD C:\Windows\System32\Wbem for /f %s in ('dir /b *.mof') do mofcomp %s - A continuación, vuelva a registrar los archivos DLL ejecutando:
for /f %s in ('dir /b *.dll') do regsvr32 /s %s - Reinicie su computadora.
Solución 4: Limpiar el proveedor de WSMan con PowerShell
Si está ejecutando scripts específicos o usando herramientas como System Center Configuration Manager (SCCM) o Hyper-V manager, borre la ruta del proveedor de WSMan almacenada en caché.
- Abre el menú Inicio, busca PowerShell, haga clic derecho en él, y seleccione Run as administrator.
- Navegar a la unidad del proveedor de WSMan para inspeccionar la configuración:
cd WSMan:\localhost dir - Si nota que los oyentes están muertos o que los puntos finales están obsoletos, elimínelos usando el comando remove item:
Remove-Item .\Listener\* -Recurse - ¡Corre!
winrm quickconfiguna vez más para reconstruir los oyentes limpios.
ERROR_WSMAN_CANNOT_PROCESS_FILTER | ERROR_WSMAN_CLIENT_ENUMERATORADDEVENT_NULL_PARAM | ERROR_WSMAN_ADDOBJECT_MISSING_EPR | ERROR_WSMAN_NETWORK_TIMEDOUT | ERROR_WINRS_RECEIVE_IN_PROGRESS
Puede haber algunos errores.. Learn Microsoft