Oireet
Kun olet asentanut huhtikuun 2021 suojauspäivityksen (tai uudemmat päivitykset) Microsoft Exchange Server 2019: lle, 2016: lle tai 2013: lle, sovellukset alkavat palauttaa jonkin seuraavista virhesanomista:
Viesti 1
Tämä suoritustila ei tue syntaksia. Näin voi käydä, jos askelpalautin on ei-kielitilassa.
Viesti 2
Poikkeus ilmeni System.Management.Automation.RemoteException: Tämä suoritustila ei tue syntaksia. Näin voi käydä, jos askelpalautin on ei-kielitilassa. osoitteessa System.Management.Automation.Runspaces.AsyncResult.EndInvoke() osoitteessa System.Management.Automation.PowerShell.CoreInvokeRemoteHelper[TInput,TOutput](PSDataCollection'1 input, PSDataCollection'1 output,
Tässä tilanteessa sovellus ei nouta tietoja PowerShellin etäyhteyden kautta palvelimesta, jossa on Exchange Server. Joissakin tapauksissa sovellus lakkaa vastaamasta.
Syy
Exchange-pohjaisen palvelimen Exchange-hallintakonsoli päätepiste muutettiin FullLanguage-tilasta NoLanguage-tilaan. Sovellukset, jotka käyttävät Remote PowerShellin FullLanguage-tilaominaisuuksia, kokevat nyt virheen, joka on kuvattu "Oireet" -osassa, kun ne käsittelevät PowerShell-etäpuheluita.
Ratkaisu
Tämän ongelman ratkaisemiseksi sovelluskehittäjän on päivitettävä sovellus toimimaan Exchange-liittymän uuden, rajoittavamman tilan kanssa.
Lisäksi suosittelemme, että käytät jompaakumpaa seuraavista ratkaisuista:
-
Varmista, että kaikki .invoke() käyttävät puhelut käyttävät myös .AddCommand() eivätkä .AddScript(). Lisätietoja saat artikkelista about_Language_Modes – PowerShell | Microsoft Docs.
-
Toteuttaa tuodun istunnon sen sijaan, että käyttäisit .invoke(). Lisätietoja on githubissa kohdassa David-Barrett-MS/ExchangePowerShellAutomationSample. Tällä verkkosivulla on esimerkkisovellus, jossa esitellään, miten voit muodostaa yhteyden Exchange Remote PowerShelliin ja suorittaa cmdlet-komentoja ohjelmallisesti.
Lisätietoja
Lisätietoja huhtikuun 2021 suojauspäivityksistä on seuraavassa Exchange Team -blogiartikkelissa: