Certaines applets de commande échouent dans PowerShell ISE après une mise à niveau vers Exchange Server 2010 SP3

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

Symptômes

Prenons l’exemple du scénario suivant :

  • Vous mettez à niveau un environnement Exchange Server Service Pack 2 (SP2) Rollup 6 vers Exchange Server 2010 SP3.
  • Les outils de gestion Exchange Server 2010 SP3 sont installés sur un ordinateur client.
  • Vous utilisez l’environnement ise (Integrated Scripting Environment) PowerShell pour ouvrir un Windows PowerShell instance local sur l’ordinateur client.
  • Vous ajoutez les composants logiciels enfichables Exchange. Par exemple, vous ajoutez le composant logiciel enfichable Exchange suivant :
    Add-PSSnapin Microsoft.exchange.powershell.e2010

Dans ce scénario, certaines applets de commande Exchange ne fonctionnent plus. Par exemple, les applets de commande suivantes ne fonctionnent plus :

  • Test-WebServicesConnectivity -ClientAccessServer "Servername" -TrustanySSLcertificate
  • Set-CASMailbox

Remarque

D’autres applets de commande peuvent également ne pas fonctionner dans ce scénario.

En outre, vous recevez le message d’erreur suivant dans PowerShell ISE :

Add-PSSSnapin Microsoft.Exchange.Management.PowerShell.E2010
PS H:\> Test-WebServicesConnectivity -ClientAccessServer <Clinet Access Server Name>
ARNING: An unexpected error has occurred and a Watson dump is being generated: Operation is not valid due to the current state of the object.
Test-WebServicesConnectivity : Operation is not valid due to the current state of the object.

En outre, l’erreur suivante est enregistrée dans le journal des applications :

Time : -
ID : 8
Level : Error
Source : MSExchange CmdletLogs
Machine : -
Message: (PID 12460, Thread 9) Task Test-WebServicesConnectivity throwing unhandled exception: System.InvalidOperationException: Operation is not valid due to the current state of the object.
at Microsoft.Exchange.Data.Storage.ExchangePrincipal.get_ServerFullyQualifiedDomainName()
at Microsoft.Exchange.Monitoring.TestCasConnectivity.ResetAutomatedCredentialsAndVerify(TestCasConnectivityRunInstance instance)
at Microsoft.Exchange.Monitoring.TestCasConnectivity.BuildRunInstanceForSiteMBox(String deviceId)
at Microsoft.Exchange.Monitoring.TestCasConnectivity.BuildRunInstances()
at Microsoft.Exchange.Monitoring.TestCasConnectivity.InternalProcessRecord()
at Microsoft.Exchange.Configuration.Tasks.Task.ProcessRecord().

Solution de contournement

Pour contourner ce problème, ouvrez une session à distance sur un serveur Exchange à l’aide des applets de commande suivantes au début du script ISE :

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://<FQDN of Exchange 2010 server>/PowerShell/ -Authentication Kerberos import-pssession $session add-pssnapin microsoft.exchange* test-webservicesconnectivity -clientaccessserver CASSERVER -trustanysslcertificate

Scénarios où les applets de commande Exchange peuvent être exécutées

  • Dans Exchange Management Shell sur un serveur Exchange.
  • Dans Exchange Management Shell sur un ordinateur sur lequel les outils d’administration sont installés.
  • Dans PowerShell sur un serveur Exchange après le chargement des composants logiciels enfichables Exchange.
  • Dans PowerShell ISE sur un serveur Exchange après le chargement des composants logiciels enfichables Exchange.

Remarque

L’exécution d’applets de commande dans un instance PowerShell local n’est pas prise en charge dans Exchange Server 2010, sauf si cette utilisation est explicitement documentée comme étant requise dans Exchange Server documentation TechNet 2010. Pour plus d’informations, consultez Les espaces d’exécution locaux ne sont pas pris en charge dans Exchange 2010.

Scénarios où les applets de commande Exchange ne peuvent pas être exécutées

  • À partir de PowerShell sur un ordinateur qui n’est pas en cours d’exécution Exchange Server mais sur lequel les outils de gestion Exchange Server SP3 sont installés.
  • À partir de PowerShell ISE sur un ordinateur qui n’exécute pas Exchange Server mais sur lequel les outils de gestion Exchange Server SP3 sont installés.