Errore InvalidShellID in RPS in Microsoft 365

Numero KB originale: 3090768

Sintomi

Quando uno script viene eseguito a lungo o quando si esegue un cmdlet amministrativo in Remote PowerShell (RPS) in Microsoft 365, viene visualizzato in modo intermittente un messaggio di errore simile al seguente:

L'elaborazione dei dati per un comando remoto non è riuscita con il messaggio di errore seguente:
[ClientAccessServer=Server1,BackEndServer=Server2,RequestId=<>,TimeStamp=DateTime] [FailureCategory=WSMan-InvalidShellID] La richiesta di Shell remota Windows con ShellId <> non è riuscita perché la shell non è stata trovata nel server. Le possibili cause sono: il valore di ShellId specificato non è corretto oppure la shell non esiste più nel server. Fornire la ShellId corretta o creare una nuova shell e ripetere l'operazione. Per altre informazioni, vedere l'argomento della Guida about_Remote_Troubleshooting.

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

+ FullyQualifiedErrorId : JobFailure

+ PSComputerName : posta elettronica. contoso.com

Causa

Questo problema si verifica se le seguenti condizioni sono vere:

  • Si usa un account associato a un utente abilitato alla posta elettronica (MEU) in un ambiente multi-area.
  • Connections vengono indirizzati attraverso un'area diversa dall'area dell'utente.

Questo errore può verificarsi quando un server back-end viene rimosso dalla rotazione per essere aggiornato. Inoltre, questo problema si verifica raramente.

Risoluzione

Scenario 1 : quando uno script è in esecuzione a lungo o quando il flusso di lavoro automatizzato si arresta

In questo scenario, potrebbe essere necessario modificare lo script per riconnettersi automaticamente se un server viene rimosso dalla rotazione mentre è in corso. A tale scopo, è possibile usare la gestione degli errori appropriata nello script per rilevare gli errori. Riconnettersi e riavviare i processi.

Scenario 2: quando si esegue un cmdlet amministrativo in RPS

In questo scenario è necessario eseguire nuovamente il cmdlet. È necessario contattare un server back-end diverso e quindi eseguire correttamente il cmdlet.

Nota

In una distribuzione Exchange Online a più aree è consigliabile usare account amministrativi abilitati per le cassette postali. In questo modo si garantisce che le connessioni RPS vengano eseguite tramite l'ambiente corrente. Se l'account amministrativo è associato a un MEU, le connessioni possono essere instradate attraverso l'altra area. Questo comportamento può ritardare la connessione o attivare errori.

Microsoft potrebbe richiedere una traccia di Fiddler per analizzare questo problema. Se necessario, un tecnico del supporto invierà un pacchetto di diagnostica del supporto per acquisire e caricare in modo sicuro queste informazioni. Per acquisire queste informazioni nella traccia Fiddler, è necessario aggiungere un'opzione di sessione di PowerShell con il ProxyAccessType parametro impostato su IEConfig. Ad esempio:

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

Ulteriori informazioni

Per altre informazioni sulla gestione degli errori, vedere Weekend Scripter: Using Try, Catch, Finally blocks for PowerShell error handling.For more information about error handling, see Weekend Scripter: Using Try, Catch, Finally blocks for PowerShell error handling.