MS Exchange 2010: командлет не выполняется правильно как запланированная задача

Я использую запланированную задачу и командлет New-MailboxExportRequest для экспорта почтовых ящиков моей организации в архивные файлы .PST каждую ночь в течение некоторого времени. К сожалению, ExportRequests не удаляются после завершения операции архивирования, и когда Exchange решает, что он получил достаточно запросов, он прекращает обработку моих резервных копий.

Следующие действия хорошо подходят для очистки запросов при запуске в командной консоли Exchange:

Get-MailboxExportRequest -Status Completed | Удалить-MailboxExportRequest

ОДНАКО мне не удалось правильно запустить этот командлет в качестве запланированной задачи.

Я использую следующий синтаксис:

C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe -command ". 'C: \ Program Files \ Microsoft \ Exchange Server \ V14 \ bin \ RemoteExchange.ps1'; Connect-ExchangeServer -auto; Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequest "

Когда я вручную выполняю задачу, она зависает с надписью «Задача выполняется. (0x41301) ', пока я не закончу задачу. Обратите внимание, что я использую учетную запись с надлежащим уровнем разрешений, UAC отключен, а для задачи включен параметр «Запускать с наивысшими привилегиями». Поэтому я склонен полагать, что проблема в моем синтаксисе.

Любая помощь ОЧЕНЬ ценится.

РЕДАКТИРОВАТЬ:

Нашел свое решение через несвязанный вопрос о сценариях; командлет запрашивает подтверждение при нормальном использовании. Поэтому я изменил свой сценарий на следующее:

C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe -command ". 'C: \ Program Files \ Microsoft \ Exchange Server \ V14 \ bin \ RemoteExchange.ps1'; Connect-ExchangeServer -auto; Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequest -Confirm: $ false "

Моя запланированная задача выполняется так, как задумано, и делает то, для чего она предназначена. Спасибо за место.


person Mike Pedrick    schedule 28.06.2011    source источник
comment
Опубликуйте ответ как ответ и отметьте его как принятый.   -  person JasonMArcher    schedule 29.06.2011


Ответы (1)


Общий способ решить эту проблему - передать параметр -noninteractive файлу powershell.exe. Это гарантирует, что процесс PowerShell никогда не будет блокироваться при вводе пользователем какой-либо команды.

Обратите внимание, что это общая рекомендация по запуску PowerShell в запланированной задаче, которая работает вместе с исправлением автора.

См. "Powershell /?" из командной строки.

person JT.    schedule 06.10.2012