Udostępnij za pośrednictwem


Niektóre polecenia cmdlet nie powiodły się w programie PowerShell ISE po uaktualnieniu do wersji Exchange Server 2010 z dodatkiem SP3

Oryginalny numer KB: 2859999

Symptomy

Rozpatrzmy następujący scenariusz:

  • Uaktualniasz środowisko pakietu zbiorczego Exchange Server Service Pack 2 (SP2) 6 do Exchange Server 2010 z dodatkiem SP3.
  • Narzędzia do zarządzania Exchange Server 2010 z dodatkiem SP3 są instalowane na komputerze klienckim.
  • Zintegrowane środowisko skryptów programu PowerShell (ISE) służy do otwierania lokalnego wystąpienia Windows PowerShell na komputerze klienckim.
  • Dodajesz przystawki programu Exchange. Możesz na przykład dodać następującą przystawkę programu Exchange:
    Add-PSSnapin Microsoft.exchange.powershell.e2010

W tym scenariuszu niektóre polecenia cmdlet programu Exchange nie działają już. Na przykład następujące polecenia cmdlet nie działają już:

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

Uwaga

Inne polecenia cmdlet również mogą nie działać w tym scenariuszu.

Ponadto w programie PowerShell ISE jest wyświetlany następujący komunikat o błędzie:

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.

Ponadto w dzienniku aplikacji jest rejestrowany następujący błąd:

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

Obejście problemu

Aby obejść ten problem, otwórz sesję zdalną na serwerze Exchange przy użyciu następujących poleceń cmdlet na początku skryptu 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

Scenariusze, w których można uruchamiać polecenia cmdlet programu Exchange

  • W powłoce zarządzania programu Exchange na serwerze Exchange.
  • W programie Exchange Management Shell na komputerze z zainstalowanymi narzędziami do zarządzania.
  • W programie PowerShell na serwerze Exchange po załadowaniu przystawek programu Exchange.
  • W programie PowerShell ISE na serwerze exchange po załadowaniu przystawki programu Exchange.

Uwaga

Uruchamianie poleceń cmdlet w lokalnym wystąpieniu programu PowerShell nie jest obsługiwane w Exchange Server 2010 r., chyba że to użycie jest jawnie udokumentowane jako wymagane w dokumentacji Exchange Server 2010 TechNet. Aby uzyskać więcej informacji, zobacz Lokalne obszary uruchomieniowe nie są obsługiwane w programie Exchange 2010.

Scenariusze, w których nie można uruchamiać poleceń cmdlet programu Exchange

  • Z programu PowerShell na komputerze, na który nie działa Exchange Server, ale ma zainstalowane narzędzia do zarządzania Exchange Server SP3.
  • Z programu PowerShell ISE na komputerze, na który nie działa Exchange Server, ale który ma zainstalowane narzędzia do zarządzania Exchange Server SP3.