Cómo arreglarlo "WinRM no puede procesar la solicitud porque el objeto WMI contiene demasiados niveles de objetos incrustados anidados".
Descripción del error
El mensaje de error. "WinRM cannot process the request because the WMI object contains too many levels of nested embedded objects" occurs when a Windows Remote Management (WinRM) query attempts to retrieve Windows Management Instrumentation (WMI) data that exceeds the default serialization depth limit.
WinRM utiliza un protocolo basado en XML (WS-Management) para transmitir datos. Para evitar ataques de denegación de servicio (DoS) y consumo excesivo de memoria, Windows aplica un límite de seguridad estricto sobre la profundidad en que los objetos pueden anidarse entre sí durante este proceso de traducción. Cuando una consulta compleja (a menudo relacionada con componentes del sistema anidados profundamente, agrupación o agentes de monitoreo de terceros) cruza este umbral, WinRM detiene la operación y lanza este error.
Solución paso a paso
Para resolver este problema, debe aumentar manualmente la profundidad máxima permitida para los objetos WMI anidados en la configuración WinRM. Este cambio debe aplicarse a través de una interfaz de línea de comandos administrativa.
Paso 1: Abra PowerShell como Administrador
- Presiona el... Windows Key en su teclado.
- ¿ Qué tipo ? PowerShell en la barra de búsqueda.
- Haga clic derecho en Windows PowerShell de los resultados de búsqueda.
- Selecciona Run as administrator.
- Haga clic Yes si aparece el mensaje de control de cuentas de usuario (UAC).
Paso 2: Compruebe el tamaño actual de la envolvente máxima (opcional)
Antes de hacer cambios, puede ver sus límites de configuración WinRM actuales ejecutando el siguiente comando:
winrm get winrm/config
Mira a través de la salida para el MaxEnvelopeSizekb o los límites de procesamiento de XML en virtud de la soap - ¿ Qué ? xml las secciones de anidación para entender su línea de base.
Paso 3: Aumentar el límite de profundidad de anidación XML
Ejecute el siguiente comando para aumentar el límite máximo de profundidad estructural permitido por el servicio WinRM. De forma predeterminada, este valor a menudo se establece en 10. Aumentarlo a 30 o más generalmente resuelve errores complejos de objetos anidados:
winrm set winrm/config @{MaxEnvelopeSizekb="8000"}
A continuación, configure explícitamente el límite de profundidad de procesamiento XML utilizando este comando:
winrm set winrm/config/soap @{MaxXMLNestingDepth="30"}
(Nota: Si su versión específica de Windows no soporta el MaxXMLNestingDepth propiedad directamente a través de esa ruta, proceder al Paso 4 para aplicar la configuración a través del Registro de Windows).
Paso 4: Corrección de registro alternativo (si los comandos de PowerShell fallan)
Si la utilidad de línea de comandos WinRM rechaza la sintaxis de propiedad, puede aplicar el límite de anidación directamente a través del Registro de Windows:
- Presione. Windows Key + R, tipo
regedit, y presiona Enter para abrir el Editor de Registro. - Navegar a la siguiente ruta del registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WSMAN\ - Busca una clave o DWORD llamada
MaxXMLNestingDepth. - Si no existe, haga clic derecho en el espacio en blanco en el panel derecho, seleccione New > DWORD (32-bit) Value, y nombrarlo.
MaxXMLNestingDepth. - Haga doble clic.
MaxXMLNestingDepth, cambia el Base ¿ Por qué ? Decimal, fija el... Value data ¿ Por qué ?30(o más alto, hasta64), y haga clic OK.
Paso 5: Reinicie el servicio WinRM
Para que los cambios entren en vigencia, debe reiniciar el servicio de administración remota de Windows. Ejecute estos comandos en la ventana administrativa de PowerShell:
Stop-Service winrm
Start-Service winrm
Alternativamente, puede usar la sintaxis estándar del comando:
net stop winrm
net start winrm
Paso 6: Verifique la resolución
Vuelva a ejecutar la aplicación, el script o la herramienta de monitoreo que originalmente desencadenó el error. El objeto WMI ahora debe ser serializado con éxito a través de WinRM sin golpear el cuello de botella de anidación.
ERROR_WSMAN_INVALID_SUBSCRIPTION_MANAGER | ERROR_WSMAN_NON_PULL_SUBSCRIPTION_NOT_SUPPORTED | ERROR_WSMAN_REMOTE_CIMPATH_NOT_SUPPORTED | ERROR_WSMAN_WMI_PROVIDER_NOT_CAPABLE | ERROR_WSMAN_WMI_INVALID_VALUEPuede haber algunos errores.. Learn Microsoft