Я пытаюсь создать скрипт, который может экспортировать почтовый ящик пользователя в PST удаленно (консоль Exchange Server 2010 установлена на сервере, на котором мы это выполняем, и модуль загружается правильно). Это делается с использованием сценария, поэтому нашим администраторам L2 не нужно вручную выполнять задачу. Вот MWE.Prorgess bar для `New-MailboxExportRequest`
$UserID = Read-Host "Enter username"
$PstDestination = "\\ExServer\Share\$UserID.pst"
$Date = Get-Date -Format "yyyyMMddhhmmss"
$ExportName = "$UserID" + "$Date"
try {
New-MailboxExportRequest -Mailbox $UserID -FilePath $PstDestination -Name $ExportName -ErrorAction Stop -WarningAction SilentlyContinue | Out-Null
# Loop through the process to track its status and write progress
do {
$Percentage = (Get-MailboxExportRequest -Name $ExportName | Get-MailboxExportRequestStatistics).PercentComplete
Write-Progress "Mailbox export is in progress." -Status "Export $Percentage% complete" -PercentComplete "$Percentage"
}
while ($Percentage -ne 100)
Write-Output "$UserID`'s mailbox has been successfully exported. The archive can be found at $PstDestination."
}
catch {
Write-Output "There was an error exporting the mailbox. The process was aborted."
}
Проблема заключается в том, как только мы начинаем экспорт, задача становится Queued
. Иногда экспорт остается в очереди в течение очень долгого времени, и скрипт в настоящее время не может понять, когда начинается задача, и когда это произойдет, не удается правильно отобразить ход. Экспорт происходит в фоновом режиме, но сценарий остается там. Так что ничего после экспорта не выполняется, и все это нужно делать вручную.
Пожалуйста, предложите способ справиться с этим?
Я попытался добавить таймер ожидания и затем проверить, начался экспорт. Это не совсем так, как ожидалось.