MS Exchange 2010: командлет не выполняется правильно как запланированная задача - PullRequest
2 голосов
/ 28 июня 2011

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

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

Get-MailboxExportRequest -Состояние завершено |Remove-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) ', пока я не закончу задачу.Обратите внимание, что я использую учетную запись с соответствующими правами доступа, контроль учетных записей отключен, а в задаче включен «Запуск с наивысшими привилегиями».Поэтому я склонен полагать, что проблема заключается в моем синтаксисе.

Любая помощь приветствуется.

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

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

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 "

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

1 Ответ

1 голос
/ 06 октября 2012

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

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

Смотрите «powershell /?»из командной строки.

...