2015-12-18 1 views
0

J'ai besoin d'exporter du PST. Le problème est, quand j'utilise mon foreach-object pour exporter chaque PST un par un, ils sont tous mis en file d'attente. Mais un autre programme est censé fonctionner en utilisant le PST en même temps. Je ne veux pas que mes demandes soient mises en file d'attente, je veux qu'elles soient complétées avant d'en commencer une autre. Par exemple, si la première requête extrait pst1, je veux qu'elle soit complètement extraite avant de mettre pst2 en file d'attente. Y a-t-il un moyen de faire cela ?PST: Comment ne pas mettre une MailboxRequest dans une file d'attente

Répondre

0

Vous ne pouvez pas modifier le comportement de file d'attente, mais vous pouvez forcer le serveur exchage pour traiter seulement 1 pst chaque fois

Pour ce faire, vous devez modifier le fichier MSExchangeMailboxReplication.exe.config situé à:

<Exchange Installation Path>\Program Files\Microsoft\Exchange Server\V14\Bin

MaxActiveMovesPerSourceMDB - Default is 5 - Change it to 1 
MaxActiveMovesPerTargetMDB - Default is 2 - Change it to 1 

Vous pourriez aussi avoir besoin de changer les réglage ainsi:

MaxActiveMovesPerTargetServer 
MaxActiveMovesPerSourceServer 

bien sûr si vous voulez simplement mettre en pause la boucle foreach vous pouvez utiliser l'instruction while (comme Oggew suggéré) pour s'assurer que le travail précédent est terminé avant de traiter l'exportation suivante

0

Vous pourriez ajouter quelque chose comme ça après votre passage New-MailboxExportRequest (à l'intérieur de la boucle foreach). Si le statut d'exportation est égal à "Queued" ou "inprogress", le script dormira pendant 15 secondes puis revérifiera. Si la valeur change d'état, elle passera dans le prochain New-MailboxExportRequest.

while ((Get-MailboxExportRequest -Mailbox $var | Where {$_.Status -eq "Queued" -or $_.Status -eq "InProgress"})) 
{ 
    sleep 15 
}