2014-01-10 49 views
0

我經常使用新MailboxExportRequest的命令在PowerShell控制檯中的Exchange服務器上,像這樣的:新MailboxExportRequest不要在偏僻的PSSession工作

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

+0

如果你可以翻譯錯誤的第一部分將是有幫助的,因爲不是每個人都可以讀/說法語。 也請檢查您連接的用戶是否具有對網絡共享的寫權限。 – Paul

+0

我使用相同的用戶(域管理員,Exchange管理員) – Alban

+0

它工作如果您在目標計算機上正常powershell會話中執行該cmdlet? – Paul

回答

1

加載管理單元就像不支持d在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參數的註釋並在需要時爲該會話提供備用憑據。

這也將elimnatat需要有安裝在計算機上的管理工具,正在運行的腳本,並保持的相關頭痛它修補到同一級別的服務器上有什麼。

如果您正在以交互方式工作或運行使用許多Exchange cmdlet的腳本,則可以將會話創建添加到您的配置文件,然後執行Import-PSSession,並且您將擁有本地可用的Exchange cmdlet的代理功能你可以像加載管理單元一樣使用它。當您使用隱式遠程處理這樣的,用於建立會話的credentiaals的帳戶將確定什麼capablilities你將有

Import-PSSsession $Session 

一些caveates做到心中有數。似乎是添加到本地會話的Exchange cmdlet實際上是代理功能(可以使用Get-Command來驗證此功能)。這組代理函數由Exchange在初始建立會話時動態創建,並將根據連接所屬帳戶的RBAC角色進行自定義。如果它沒有執行給定函數的權限,那麼您將不會獲得這些cmdlet的代理函數,或者函數可能沒有這些函數的參數。

如果您使用EMS外殼或加載管理單元,您返回的結果將不會與返回的本機對象相同。它們將是反序列化的對象,這意味着它們可能會丟失方法,並且與本機對象相比,會失去一些保真度。只有很少的情況下,這將是一個問題,或不能解決。

另請注意,當您使用隱式遠程處理時,更新是在Exchange系統帳戶的權限下進行的,而不是您的憑據。當您使用管理單元時,您的帳戶必須有權直接更新存儲在AD中的Exchange屬性,並且這些更改將記錄在Windows審覈日誌中(如果啓用)該帳戶所做的更改。當您使用隱式遠程處理時,它們將被記錄爲由Exchange服務帳戶完成。 Exchange會在其管理員審覈日誌中記錄發出請求的實際用戶帳戶的詳細信息,並且您可以使用Search-AdminAuditLog來了解何時進行了更改,以及即使未啓用Windows審覈日誌記錄的人員。如果直接使用管理單元並且沒有啓用AD審計日誌記錄,則將失去該審計線索。

+1

Add最後:Remove-PSSession $ Session – Alban

+0

好的。完成。 – mjolinor

+0

確定它的工作,但我不能在-sciptBlock中包含函數(並且我需要一個帶有很多Function()的大腳本;) – Alban