Jotkin cmdlet-komennot epäonnistuvat PowerShell ISE:ssä Exchange Server 2010 SP3 -päivityksen jälkeen

Alkuperäinen KT-numero: 2859999

Oireet

Oletetaan seuraava tilanne:

  • Päivität Exchange Server Service Pack 2 (SP2) Rollup 6 -ympäristön Exchange Server 2010 SP3:een.
  • asiakastietokoneeseen on asennettu Exchange Server 2010 SP3 -hallintatyökalut.
  • PowerShellin integroidun komentosarjaympäristön (ISE) avulla voit avata paikallisen Windows PowerShell esiintymän asiakastietokoneessa.
  • Voit lisätä Exchange-laajennukset. Voit esimerkiksi lisätä seuraavan Exchange-laajennuksen:
    Add-PSSnapin Microsoft.exchange.powershell.e2010

Tässä skenaariossa jotkin Exchangen cmdlet-komennot eivät enää toimi. Esimerkiksi seuraavat cmdlet-komennot eivät enää toimi:

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

Huomautus

Muut cmdlet-komennot eivät välttämättä toimi tässä skenaariossa.

Lisäksi näyttöön tulee seuraava virhesanoma PowerShell ISE:ssä:

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.

Myös seuraava virhe kirjataan sovelluslokiin:

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

Vaihtoehtoinen menetelmä

Voit kiertää tämän ongelman avaamalla etäistunnon Exchange-palvelimeen käyttämällä seuraavia cmdlet-komentoja ISE-komentosarjan alussa:

$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

Skenaariot, joissa Exchangen cmdlet-komentoja voidaan suorittaa

  • Exchange Management Shellissä Exchange-palvelimessa.
  • Exchange Management Shellissä tietokoneessa, johon on asennettu hallintatyökalut.
  • Exchange-palvelimen PowerShellissä Exchange-laajennusten lataamisen jälkeen.
  • Kun Exchange-laajennukset on ladattu, PowerShell ISE:ssä Exchange-palvelimessa.

Huomautus

Cmdlet-komentojen suorittamista paikallisessa PowerShell-esiintymässä ei tueta Exchange Server 2010, ellei tätä käyttöä nimenomaisesti dokumentoida pakolliseksi Exchange Server 2010 TechNet -dokumentaatiossa. Lisätietoja on kohdassa Paikalliset suoritustilat eivät ole tuettuja Exchange 2010:ssä.

Skenaariot, joissa Exchangen cmdlet-komentoja ei voi suorittaa

  • PowerShellistä tietokoneessa, joka ei ole käynnissä Exchange Server mutta johon on asennettu Exchange Server SP3-hallintatyökalut.
  • PowerShell ISE:stä tietokoneessa, joka ei ole käynnissä Exchange Server mutta johon on asennettu Exchange Server SP3-hallintatyökalut.