Erreur InvalidShellID dans RPS dans Microsoft 365

Numéro de la base de connaissances d’origine : 3090768

Symptômes

Lorsqu’un script est en cours d’exécution longue ou lorsque vous exécutez une applet de commande d’administration dans Remote PowerShell (RPS) dans Microsoft 365, vous recevez par intermittence un message d’erreur semblable au suivant :

Le traitement des données pour une commande distante a échoué avec le message d’erreur suivant :
[ClientAccessServer=Server1,BackEndServer=Server2,RequestId=<>,TimeStamp=DateTime] [FailureCategory=WSMan-InvalidShellID] La demande pour l’interpréteur de commandes distant Windows avec ShellId <> a échoué, car l’interpréteur de commandes est introuvable sur le serveur. Causes possibles : la ShellId spécifiée est incorrecte ou l’interpréteur de la Shell n’existe plus sur le serveur. Fournissez les ShellId correctes ou créez un nouveau shell et recommencez l’opération. Pour plus d’informations, consultez la rubrique d’aide about_Remote_Troubleshooting.

+ CategoryInfo : OperationStopped : (mail.contoso.com :String) [], PSRemotingTransportException

+ FullyQualifiedErrorId : JobFailure

+ PSComputerName : mail. contoso.com

Cause

Ce problème se produit si les conditions suivantes sont remplies :

  • Vous utilisez un compte associé à un utilisateur à extension messagerie (MEU) dans un environnement multirégion.
  • Connections sont routées via une région différente de la région de l’utilisateur.

Cette erreur peut se produire lorsqu’un serveur principal est supprimé de la rotation pour être mis à niveau. En outre, ce problème se produit rarement.

Résolution

Scénario 1 - Lorsqu’un script s’exécute longtemps ou lorsque le flux de travail automatisé s’arrête

Dans ce scénario, vous devrez peut-être modifier le script pour qu’il se reconnecte automatiquement si un serveur est supprimé de la rotation pendant qu’il est en cours. Pour ce faire, utilisez la gestion des erreurs appropriée dans le script pour intercepter les erreurs. Ensuite, reconnectez-vous et redémarrez les processus.

Scénario 2 - Quand vous exécutez une applet de commande d’administration dans RPS

Dans ce scénario, vous devez réexécuter l’applet de commande . Un autre serveur principal doit être contacté, puis l’applet de commande doit s’exécuter correctement.

Remarque

Dans un déploiement multirégion Exchange Online, nous vous recommandons d’utiliser des comptes d’administration compatibles avec la boîte aux lettres. Cela permet de s’assurer que les connexions RPS sont établies via l’environnement actuel. Si le compte d’administration est associé à une meU, les connexions peuvent être routées via l’autre région. Ce comportement peut retarder la connexion ou déclencher des erreurs.

Microsoft peut avoir besoin d’une trace Fiddler pour examiner ce problème. Si nécessaire, un ingénieur du support envoie un package de diagnostics de support pour capturer et charger ces informations en toute sécurité. Pour capturer ces informations dans la trace Fiddler, vous devez ajouter une option de session PowerShell avec le ProxyAccessType paramètre défini sur IEConfig. Par exemple :

Import-PSSession (New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://mail.contoso.com/powershell -Credential (Get-Credential) -Authentication Basic -AllowRedirection -SessionOption (New-PSSessionOption -ProxyAccessType IEConfig))

Informations supplémentaires

Pour plus d’informations sur la gestion des erreurs, consultez Weekend Scripter : Using Try, Catch, Finally blocks for PowerShell error handling.