2017-10-11 5 views
0

Ich bin in einer Situation, wenn ich ein paar Postfächer in den PST-Dateien exportieren möchte (ich möchte nicht, dass sie zur gleichen Zeit verarbeitet werden). Ich weiß, wie man sie mit einem Befehl get-mailboxexportrequest exportiert, aber wenn ich es mache, fangen sie fast sofort an. Kann ich irgendwie ein anderes Postfach in die Warteschlange stellen, sodass es automatisch startet, wenn das vorherige abgeschlossen ist?Kann ich den Postfachexport unter Exchange Server 2010 SP3 in PST einreihen?

+1

Wenn Sie eine Liste der Postfächer oder Mailbox-IDs in einem Array haben, sollten Sie in der Lage sein, das zu einem ForEach-Objekt zu leiten Das führt New-MailboxExportRequest für jedes Postfach aus, vorausgesetzt, dass der Befehl synchron ausgeführt wird. Sie müssten es schreiben, um einen eindeutigen Dateinamen für jedes Postfach zu bestimmen, aber das sollte nicht schwierig sein. –

+0

bist du dir sicher? Der Befehl, die Migration anzufordern, endet ziemlich schnell - Sie müssen nicht warten, bis der Prozess abgeschlossen ist, ich denke in diesem Fall "für jeden" würde nur alle anderen Anfragen beginnen, oder irre ich mich hier? – kjubus

+0

Nein, ich bin mir nicht sicher, deshalb habe ich gesagt, "vorausgesetzt, [New-MailboxExportRequest] läuft synchron." Wenn Sie das Dokument für dieses Cmdlet durchsuchen, scheint dies jedoch zu bedeuten, dass das System eine Anforderungswarteschlange verwendet. Alternativ können Sie den Parameter '-Suspend' angeben, um alle unterbrochenen Anforderungen zu starten. Sie können die Warteschlange dann grundsätzlich selbst verwalten. –

Antwort

0

Ich würde folgendes tun:

  • ein Powershell-Skript bauen, die Überprüfung, wenn es einen laufenden Export geschieht (via Get-Mailbox), wenn das isn't Fall beginnen zu exportieren x mailfiles Sie angeben, innerhalb einer CSV-Datei
  • Verwenden Sie den Windows-Taskmanager auf Ihrem Exchange Server, um dieses Skript auszulösen und einen Zeitraum hier zu definieren, wie oft und wann Ihr Skript ausgeführt werden sollte
  • Sobald das Powershell-Skript ausgeführt wird, sollte es die exportierte Maildatei aus der CSV entfernen Datei und dann beenden
  • Der nächste Lauf von dem Powershell-Skript über den Taskmanager wird dann prüfen, ob der aktuelle Auftrag noch nicht abgeschlossen ist, wenn es ist, es bis zu seiner Zeit zu holen den nächsten Eintrag aus der Liste

-Update sollte aufhören :

als Ausgangspunkt etwas wie die folgenden sollten in Ordnung sein (nicht getestet, aber Sie sollten einen Ausgangspunkt geben):

# 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"  
} 
Verwandte Themen