New-MailboxExportRequest在远程PSsession中不起作用

时间:2014-01-10 14:31:16

标签: powershell exchange-server

我经常在powershell控制台的交换服务器上使用 New-MailboxExportRequest 命令,如下所示:

Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010;
New-MailboxExportRequest -Mailbox jadrego –filepath \\computer1\c$\test.pst -verbose

enter image description here

它正常工作。但是,如果我在PS远程会话中运行这些命令,如下所示: 我使用相同的用户(域管理员,Exchange管理员)

Invoke-Command -ComputerName vdiv03 -ScriptBlock {
    Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010;
    New-MailboxExportRequest -Mailbox jadrego –filepath \\computer1\c$\test.pst
}

我收到此错误:

ERROR

failed to comunicate with mailbox database

with -verbose enter image description here

1 个答案:

答案 0 :(得分:1)

Exchange 2010中不支持像这样加载管理单元。

恕我直言,你最好只利用Exchange内置的本地远程处理来管理任务。

$ExchangeServer = <exchange serer name>

$SessionParams = 
@{
   ConfigurationName = 'Microsoft.Exchange'
   ConnectionURI     = "http://$ExchangeServer/powershell/"
   Authentication    = 'Kerberos'
  # Credential        = $Creds
}

$Session = New-PSSession @SessionParams

Invoke-command -ScriptBlock {New-MailboxExportRequest -Mailbox jadrego –filepath \\computer1\c$\test.pst} -Session $Session

Remove-PSSession $Session

将$ ExchangeServer设置为其中一个Exchange 2010服务器的名称。该帐户需要是您正在执行的功能的必要RBAC角色的成员,并且您可以取消注释Credential参数,并在需要时为会话提供备用凭据。

这也将消除在运行脚本的计算机上安装管理工具的需要,以及将其修补到与服务器上相同级别的相关麻烦。

如果您正在以交互方式工作,或者运行使用许多Exchange cmdlet的脚本,则可以将会话创建添加到您的配置文件,并执行Import-PSSession,并且您将拥有本地可用的Exchange cmdlet的代理功能。可以使用与加载管理单元相同的方法。

Import-PSSsession $Session

需要注意的一些问题:

当您使用这样的隐式远程处理时,用于建立会话的凭证帐户将决定您将拥有哪些功能。似乎是添加到本地会话的Exchange cmdlet实际上是代理功能(您可以使用Get-Command验证这一点)。当您最初建立会话时,这组代理功能由Exchange动态创建,并将根据建立连接的帐户所属的RBAC角色进行自定义。如果它没有执行给定函数的权限,您将无法获得这些cmdlet的代理函数,或者函数可能没有这些函数的参数。

如果使用EMS shell或加载了snapin,则返回的结果与返回的本机对象的结果不同。它们将是反序列化的对象,这意味着它们可能缺少方法,并且与本机对象相比将失去一些保真度。很少有这种情况会出现问题,或者无法解决。

另请注意,使用隐式远程处理时,更新是在Exchange系统帐户的权限下进行的,而不是您的凭据。使用管理单元时,您的帐户必须具有直接更新存储在AD中的Exchange属性的权限,并且这些更改将记录在该帐户所做的Windows审核日志(如果已启用)中。使用隐式远程处理时,它们将被记录为由Exchange服务帐户完成。 Exchange将在其管理员审核日志中记录发出请求的实际用户帐户的详细信息,您可以使用Search-AdminAuditLog查找更改的时间,以及即使未启用Windows审核日志记录的人员。如果您直接使用管理单元并且未启用AD审核日志记录,则会丢失该审核跟踪。

相关问题