2017-10-11 95 views
0

我在這種情況下,當我想排隊幾個郵箱導出(我不希望它們在同一時間處理)到PST文件。我知道,如何用命令get-mailboxexportrequest將它們導出,但是當我這樣做時,它們幾乎立即開始。我能以某種方式排隊另一個郵箱,所以它會自動啓動,當前一個完成?我可以將郵箱導出到Exchange Server 2010 SP3上的PST隊列嗎?

+1

如果你有一個數組郵箱或郵箱ID的列表,你應該能夠將它傳遞給ForEach對象它爲每個郵箱運行New-MailboxExportRequest,假定該命令同步運行。您必須編寫它才能確定每個郵箱的唯一文件名,但這應該不難。 –

+0

你確定嗎?請求遷移的命令很快就結束了 - 您不必等到該過程完成後,我認爲在這種情況下,「對於每個」纔會開始所有其他請求,或者我在這裏錯了嗎? – kjubus

+0

不,我不確定,所以我說,「假設[New-MailboxExportRequest]同步運行。」瀏覽該cmdlet的文檔,但似乎暗示系統使用請求隊列。或者,您可以指定'-Suspend'參數來啓動所有掛起的請求。你可以基本上自己管理隊列。 –

回答

0

我會做到以下幾點:

  • 建立其檢查PowerShell腳本,如果有一個正在運行的出口情況發生(通過GET-MailboxExportRequest)如果isn't的情況下開始出口X mailfiles您指定在CSV文件中
  • 使用Exchange服務器上的Windows任務管理器來觸發該腳本,並在此處定義腳本應該運行的頻率和時間
  • 一旦powershell腳本運行,它應該從CSV中刪除導出的郵件文件文件,然後退出
  • 那麼3210
  • 經由任務管理器的PowerShell腳本的下一次運行會檢查當前的工作仍在進行中,如果是,就應該退出,直到它的時間從你的列表

更新收拾下進入:

作爲一個起點,類似下面的應該罰款(未經測試,但應該給你一個起點):

# Get current Export Requests 
$ExportStats = Get-MailboxExportRequest 

#Check if there are completed questes 
If ($ExportStats.Status -eq "Completed") 
{ 
    Write-Host "Export done" 
    Get-MailboxExportRequest -Status Completed -Name "$ObjectName-Export" | Remove-MailboxExportRequest -Confirm:$false 
    #Disable-Mailbox -identity "AD\$ObjectName" 

    # Create a new CSV file, which isn´t including the current export name we just marked as finish via above's section.  
    # CODE MISSING HERE!  

    # Now import our CSV list and proceed it 
    Import-CSV <Filepath of CSV file(\\server\folder\file.csv)> | ForEach-Object { 
    # Perform the export 
    New-MailboxExportRequest -Mailbox $_.MailboxAlias -FilePath $_.PSTpath 
    New-MailboxExportRequest -Mailbox $_.MailboxAlias -FilePath $_.ArchivePath 
    # Once done exit here, this will ensure we proceed only the first entry 
    Exit 
    } 

} 
elseif ($ExportStats.Status -eq "InProgress") 
{ 
    Write-Host "Export still ongoing"  
} 
相關問題