无论如何,我正在研究一些Powershell脚本的工作,而且我坚持认为会非常简单。基本上,我需要在Exchange服务器上执行一些对脚本很有用的任务。我花了一些时间编写一个脚本,将我连接到我们的服务器(在同一个域上),并为一些测试命令运行invoke-command。一旦我运行了测试命令,我就可以开始编写脚本了。
但是现在,我只是得到了get-mailbox来返回任何信息,这真的只是我试图测试事情是否有效。请在此处查看三行测试代码:
$mainSession = New-PSSession -ComputerName TheServerName
invoke-command -session $mainSession -ScriptBlock {add-pssnapin Microsoft.Exchange.Management.Powershell.Admin}
invoke-command -session $mainSession -ScriptBlock {get-mailbox}
我收到“psremotingtransportexception”异常并出现“Job_Failure”错误。这可能是什么?我知道当我通过远程桌面登录到服务器并测试它们时,管理单元和get-mailbox
命令有效。假设我可以让get-mailbox
运行,我实际上可以执行我想要放在脚本中的更复杂的任务。我正在连接的Exchange Server很旧(2007?),所以并不是我使用了错误的管理单元。我错过了一些证件吗?现在它并没有问我任何问题,但我尝试添加-credential标志,这也没有帮助。
我是Powershell的新手,所以非常感谢任何帮助。这是确切的错误,为废话格式道歉:
Processing data for a remote command failed with the following error message: The WSMan provider host process did not return a proper response. A provider in the host process may have behaved improperly. For more information, see the about_Remote_Troubleshooting Help topic. + CategoryInfo : OperationStopped: (System.Manageme...pressionSyncJob:PSInvokeExpressionSyncJob) [], PSRemotingTransportException + FullyQualifiedErrorId : JobFailure
我应该提一下,我已经尝试通过set-item wsman:\localhost\shell\MaxMemoryPerShellMB 1024 -force
增加shell MB大小。我最好的猜测是这与-credential
标志有关,但到目前为止我还没有取得任何成功。
答案 0 :(得分:1)
我相信,在Exchange 2010中添加了使用PowerShell进行远程Exchange管理的官方支持。
It seems at least one person has found a way to make it work with Exchange 2007
很抱歉只有链接的答案,但解决方案似乎非常复杂,使用模拟,为此目的创建的特殊用户帐户,必须安装在Exchange服务器上的脚本模块等。
鉴于此解决方案,我想知道您是否可以通过使用PowerShell endpoint作为交换管理员运行来更简单地工作。那会比这个混乱更清洁。基本上,您将创建端点,设置RunAsUser
,然后您可以使用StartupScript
添加管理单元。我真的无法说这是否会起作用,而且我无法访问可以测试它的Exchange 2007环境。