一部のコマンドレットは、Exchange Server 2010 SP3 へのアップグレード後に PowerShell ISE で失敗する

元の KB 番号: 2859999

現象

次のような状況で問題が発生します。

  • Exchange Server Service Pack 2 (SP2) ロールアップ 6 環境を Exchange Server 2010 SP3 にアップグレードします。
  • Exchange Server 2010 SP3 管理ツールは、クライアント コンピューターにインストールされます。
  • PowerShell 統合スクリプト環境 (ISE) を使用して、クライアント コンピューター上のローカル Windows PowerShell インスタンスを開きます。
  • Exchange スナップインを追加します。たとえば、次の Exchange スナップインを追加します。
    Add-PSSnapin Microsoft.exchange.powershell.e2010

このシナリオでは、一部の Exchange コマンドレットは機能しなくなりました。 たとえば、次のコマンドレットは機能しなくなります。

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

注:

このシナリオでは、他のコマンドレットも機能しない可能性があります。

さらに、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.

また、次のエラーがアプリケーション ログに記録されます。

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().

回避策

この問題を回避するには、ISE スクリプトの先頭にある次のコマンドレットを使用して、Exchange サーバーへのリモート セッションを開きます。

$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

Exchange コマンドレットを実行できるシナリオ

  • Exchange サーバー上の Exchange 管理シェル。
  • 管理ツールがインストールされているコンピューター上の Exchange Management Shell。
  • Exchange スナップインが読み込まれた後、Exchange サーバーの PowerShell で。
  • Exchange スナップインが読み込まれた後、Exchange サーバーの PowerShell ISE で。

注:

ローカル PowerShell インスタンスでのコマンドレットの実行は、Exchange Server 2010 ではサポートされていません。この使用が、Exchange Server 2010 TechNet ドキュメントで必須として明示的に文書化されている場合を除きます。 詳細については、「 ローカル実行空間は Exchange 2010 ではサポートされていません」を参照してください。

Exchange コマンドレットを実行できないシナリオ

  • Exchange Serverを実行していないが、EXCHANGE SERVER SP3 管理ツールがインストールされているコンピューター上の PowerShell から。
  • Exchange Server実行されていないが、EXCHANGE SERVER SP3 管理ツールがインストールされているコンピューター上の PowerShell ISE から。