Jotkin cmdlet-palvelimet epäonnistuvat PowerShellin avulla Exchange Server 2010 SP3-päivityksen jälkeen

Alkuperäinen tietämys kannan numero:   2859999

Oireet

Oletetaan seuraava tilanne:

  • Päivität Exchange Server Service Pack 2 (SP2) Rollup 6-ympäristön Exchange Server 2010 SP3-versioon.
  • Exchange Server 2010 SP3-hallinta työkalut on asennettu asiakas tieto koneeseen.
  • Voit avata paikallisen Windows PowerShell-esiintymän asiakas tieto koneessa PowerShellin integroidun komento sarja ympäristön (ISE) avulla.
  • Lisäät Exchange-laajennuksia. Voit esimerkiksi lisätä seuraavan Exchange-laajennuksen:
    Add-PSSnapin Microsoft. Exchange. PowerShell. e2010

Tässä tilanteessa jotkin Exchange-cmdlet-paketit eivät enää toimi. Esimerkiksi seuraavat cmdlet-komento ei enää toimi:

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

Huomautus

Myös muut cmdlet-komentosovelmat eivät ehkä toimi tässä tilanteessa.

Lisäksi näyttöön tulee seuraava virhe sanoma PowerShellin 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.

Sovellus lokiin kirjataan myös seuraava virhe:

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-komento sarjan alussa olevaa komentosovelmia:

$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 Exchange-cmdlet-komentosovelmat voidaan suorittaa

  • Exchange-palvelimen Exchange-hallinta liittymässä.
  • Exchange-hallinta liittymässä tieto koneessa, johon on asennettu hallinta työkalut.
  • PowerShell Exchange-palvelimessa, kun Exchange-laajennukset on ladattu.
  • PowerShell ISE Exchange-palvelimessa, kun Exchange-laajennukset on ladattu.

Huomautus

Exchange Server 2010 ei tue cmdlet-komentosovelmia paikallisessa PowerShell-esiintymässä, ellei tätä käyttöä ole nimenomaisesti dokumentoitu Exchange Server 2010 TechNet-dokumentaatiossa. Lisä tietoja on kohdassa Paikallinen Runspaces ei ole käytettävissä Exchange 2010-sovelluksessa.

Skenaariot, joissa Exchange-cmdlet-komentosovelmia ei voida suorittaa

  • PowerShellin avulla tieto koneesta, jossa ei ole Exchange Serveriä, mutta jossa on asennettuna Exchange Server SP3:N hallinta työkalut.
  • PowerShell ISE tieto koneessa, joka ei suorita Exchange Serveriä, mutta jossa on asennettuna Exchange Server SP3:N hallinta työkalut.