Comment réparer "WinRM ne peut pas traiter la demande car l'objet WMI contient trop de niveaux d'objets imbriqués imbriqués".
Description de l'erreur
Le message d' erreur. "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 utilise un protocole basé sur XML (WS-Management) pour transmettre des données. Pour prévenir les attaques par déni de service (DoS) et la consommation excessive de mémoire, Windows impose une limite de sécurité stricte sur la profondeur à laquelle les objets peuvent être imbriqués les uns dans les autres pendant ce processus de traduction. Lorsqu'une requête complexe (souvent liée à des composants système imbriqués, à des clusters ou à des agents de surveillance tiers) dépasse ce seuil, WinRM arrête l'opération et lance cette erreur.
Réparation étape par étape
Pour résoudre ce problème, vous devez augmenter manuellement la profondeur maximale autorisée pour les objets WMI imbriqués dans la configuration WinRM. Cette modification doit être appliquée via une interface de ligne de commande administrative.
Étape 1: ouvrir PowerShell en tant qu'administrateur
- Appuie sur le... Windows Key sur votre clavier.
- Quel type ? PowerShell dans la barre de recherche.
- Cliquez avec le bouton droit. Windows PowerShell dans les résultats de recherche.
- Sélectionnez Run as administrator.
- Cliquez. Yes si l'invite Contrôle de compte utilisateur (UAC) s'affiche.
Étape 2: Vérifiez la taille maximale actuelle de l'enveloppe (facultatif)
Avant d'apporter des modifications, vous pouvez afficher vos limites de configuration WinRM actuelles en exécutant la commande suivante:
winrm get winrm/config
Regardez la sortie pour le MaxEnvelopeSizekb ou des limites de traitement XML en vertu de la soap ou... xml les sections de nidification pour comprendre votre ligne de base.
Étape 3: Augmenter la limite de profondeur de nidification XML
Exécutez la commande suivante pour augmenter la limite de profondeur maximale de structure autorisée par le service WinRM. Par défaut, cette valeur est souvent définie sur 10.
winrm set winrm/config @{MaxEnvelopeSizekb="8000"}
Ensuite, configurez explicitement la limite de profondeur de traitement XML à l'aide de cette commande:
winrm set winrm/config/soap @{MaxXMLNestingDepth="30"}
(Remarque: Si votre version spécifique de Windows ne prend pas en charge le MaxXMLNestingDepth la propriété directement via ce chemin, passez à l'étape 4 pour appliquer la configuration via le Registre Windows).
Étape 4: Correction du registre alternatif (si les commandes PowerShell échouent)
Si l'utilitaire de ligne de commande WinRM rejette la syntaxe de propriété, vous pouvez appliquer la limite de nidification directement via le Registre Windows:
- Appuyez dessus. Windows Key + R, type
regedit, et appuyez Enter pour ouvrir l'éditeur de registre. - Naviguez vers le chemin du registre suivant:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WSMAN\ - Cherchez une clé ou un mot-clé appelé DWORD.
MaxXMLNestingDepth. - Si elle n'existe pas, cliquez avec le bouton droit de la souris sur l'espace vide dans le volet de droite, sélectionnez New > DWORD (32-bit) Value, et donnez-lui un nom.
MaxXMLNestingDepth. - Double-cliquez.
MaxXMLNestingDepth, changez le Base Je vous en prie. Decimal, réglez le Value data Je vous en prie.30(ou plus, jusqu'à64), puis cliquez OK.
Étape 5: redémarrer le service WinRM
Pour que les modifications prennent effet, vous devez redémarrer le service de gestion à distance de Windows. Exécutez ces commandes dans votre fenêtre d'administration PowerShell:
Stop-Service winrm
Start-Service winrm
Alternativement, vous pouvez utiliser la syntaxe standard de l'invite de commande:
net stop winrm
net start winrm
Étape 6: vérifier la résolution
Relancez l'application, le script ou l'outil de surveillance qui a initialement déclenché l'erreur. L'objet WMI devrait maintenant être sérialisé avec succès via WinRM sans frapper le goulot d'étranglement de l'imbrication.
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_VALUEIl y a peut-être des erreurs.. Learn Microsoft