Я пытаюсь получить статус всех TransportAgents с удаленного сервера Exchange через Windows Powershell.Exchange Remote Powershell получает спорадическое состояние «Broken»
Я спорадически получаю сообщение об ошибке, что The session state is Broken
. После того, как она сломана мне нужно создать новую сессию
Ниже список команд я использую (в правильном порядке)
# Build the PSSession for Exchange
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://<SERVER>/PowerShell/ -Authentication Default
# Invoke the command 'Get-TransportAgent' on the remote PSSession
Invoke-Command $Session {Get-TransportAgent}
# Result when there is NO ERROR
Identity Enabled Priority PSComputerName
-------- ------- -------- --------------
Transport Rule Agent True 1 <SERVER>
Malware Agent True 2 <SERVER>
Text Messaging Routing Agent True 3 <SERVER>
Text Messaging Delivery Agent True 4 <SERVER>
Когда я повторить команду Invoke-Command $Session {Get-TransportAgent}
следующая ошибка произошла спорадически:
Invoke-Command : Because the session state for session Session9, <GUID-REMOVED>, <SERVER> is not equal to Open, you cannot run a command in the session. The session state is Broken. At line:1 char:1
UPDATE
После добавления IdleTimeout в SessionOption Я recev ИНГ ошибку ниже следуют сессии сломана
Invoke-Command $Session {Get-TransportAgent}
Starting a command on the remote server failed with the following error
message : The I/O operation has been aborted because of either a thread exit or an application request. For more information, see the about_Remote_Troubleshooting
Help topic.
+ CategoryInfo : OperationStopped: (<SERVER>:String) [], PSRemotingTransportException
+ FullyQualifiedErrorId : JobFailure
+ PSComputerName : <SERVER>
Вопрос: Почему возникает ошибка и как решить эту проблему?
Он по-прежнему дает мне ошибку (см. Мой обновленный вопрос) менее чем за 10 минут, я также проверю другие SessionOptions - спасибо –
Мне удалось выяснить, что если есть какие-либо сетевые разъединения по обе стороны от PSSession, сеанс прерывается. Вы можете отлаживать связь между локальными и удаленными серверами. Модификация скрипта возможна, так что если '$ session.state' не' open', вы можете поручить сценарию воссоздать объект сеанса. – Vesper
Я восстановил, что на удаленном сервере установлено плохое соединение (проблема с задержкой по сети, проблема с локальной сетью), и это вызывает состояние «Broken». - Я дам ему последний шанс, используя флаг -NoEncryption и -NoCompression. еще раз спасибо –