חלק מיישומוני ה-cmdlet נכשלים ב-PowerShell ISE לאחר שדרוג ל-Exchange Server 2010 SP3

מספר KB מקורי:   2859999

מאפייני הבעיה

שקול את התרחיש הבא:

  • באפשרותך לשדרג את הסביבה של אוסף העדכונים 6 של Exchange Server Service Pack 2 (SP2) ל-Exchange Server 2010 SP3.
  • כלי הניהול של Exchange Server 2010 SP3 מותקנים במחשב לקוח.
  • אתה משתמש בסביבת Scripting משולבת של PowerShell (ISE) כדי לפתוח מופע מקומי של Windows PowerShell במחשב הלקוח.
  • עליך להוסיף את יישומי ה-snap-in של Exchange. לדוגמה, עליך להוסיף את ה-snap-in של Exchange הבא:
    Add-PSSnapin-Microsoft. exchange. powershell. e2010

בתרחיש זה, חלק מרכיבי ה-cmdlet של Exchange אינם פועלים עוד. לדוגמה, רכיבי ה-cmdlet הבאים אינם פועלים עוד:

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

הערה

ייתכן שגם רכיבי cmdlet אחרים לא יפעלו בתרחיש זה.

בנוסף, אתה מקבל את הודעת השגיאה הבאה ב-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().

פתרון

כדי לעקוף בעיה זו, פתח הפעלה מרוחקת לשרת Exchange באמצעות רכיבי ה-cmdlet הבאים בתחילת הסקריפט 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

תרחישים שבהם ניתן להפעיל את רכיבי ה-cmdlet של Exchange

  • במעטפת ניהול Exchange בשרת Exchange.
  • במעטפת ניהול Exchange במחשב שבו מותקנות כלי ניהול.
  • ב-PowerShell בשרת Exchange לאחר טעינת יישומי ה-snap-in של Exchange.
  • ב-PowerShell ISE בשרת Exchange לאחר טעינת יישומי ה-snap-in של Exchange.

הערה

הפעלת רכיבי cmdlet במופע PowerShell מקומי אינה נתמכת ב-Exchange Server 2010, אלא אם כן השימוש מתועד במפורש כנדרש בתיעוד של Exchange Server 2010 TechNet. לקבלת מידע נוסף, ראה Runspaces מקומיים אינם נתמכים ב-Exchange 2010.

תרחישים שבהם לא ניתן להפעיל רכיבי cmdlet של Exchange

  • מ-PowerShell במחשב שאינו מפעיל את Exchange Server, אך התקנת את כלי הניהול של Exchange Server SP3.
  • מ-PowerShell ISE במחשב שאינו משתמש ב-Exchange Server, אך התקנת את כלי הניהול של Exchange Server SP3.