【问题标题】:Trouble with Remote Sessions and Exchange 2007 Servers远程会话和 Exchange 2007 服务器出现问题
【发布时间】:2014-11-04 18:00:02
【问题描述】:

无论如何,我正在编写一些用于工作的 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}

我收到带有“Job_Failure”错误的“psremotingtransportexception”异常。这可能是什么?我知道管理单元和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 增加外壳 MB 大小。我最好的猜测是这与-credential 标志有关,但到目前为止我还没有成功。

【问题讨论】:

    标签: powershell exchange-server powershell-3.0 powershell-remoting exchange-server-2007


    【解决方案1】:

    我相信在 Exchange 2010 中添加了对使用 PowerShell 进行远程 Exchange 管理的官方支持。

    It seems at least one person has found a way to make it work with Exchange 2007.

    抱歉,仅提供链接的答案,但解决方案似乎相当复杂,使用模拟、为此目的创建的特殊用户帐户、必须在交换服务器上安装的脚本模块等。

    鉴于此解决方案,我想知道您是否可以通过使用以交换管理员身份运行的PowerShell endpoint 使其更简单地工作。那会比这个烂摊子更干净。基本上,您将创建端点,设置RunAsUser,然后您可以使用StartupScript 添加管理单元。不过,我真的不能说这是否可行,而且我无法访问我可以测试它的 Exchange 2007 环境。

    【讨论】:

    • 哇,好吧!我们的交换服务器已经很老了...我会看一下端点文章,这似乎是正确的方向,但是我是在服务器上还是在本地机器上创建这个端点?
    • 另外,在运行基本测试后,我会将脚本的其余部分放在 StartupScript 中吗?
    • 可能不是,这实际上是为了影响使用该会话配置调用的每个会话的较短内容。所以你可以在那里添加初始化代码,加载模块,在这种情况下添加一个管理单元。您的脚本的其余部分可能会在该会话的上下文中执行(例如在Invoke-Command 的脚本块中)。
    • 知道了,谢谢!我仍然没有机会尝试端点的东西,我仍然对在哪里创建端点感到困惑,在服务器上还是在我的本地机器上?对不起,如果这很明显......
    • 端点在服务器上(更具体地说,它是 powershell 远程连接的端点)。所以你创建你的会话配置,然后在交换服务器上注册它。当您调用New-PSSession 时,您指定-ConfigurationName 'MyConfiguration'。
    猜你喜欢
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    • 2011-07-23
    • 2013-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多