2

しばらくの間、スケジュールされたタスクと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 -ステータス完了|削除-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 -ステータス完了|削除-MailboxExportRequest-確認:$ false "

スケジュールされたタスクは意図したとおりに実行され、設計されたとおりに実行されます。スペースをありがとう。

4

1 に答える 1

1

この問題を解決する一般的な方法は、スイッチ '-noninteractive' を powershell.exe に渡すことです。これにより、powershell プロセスがコマンドのユーザー入力でブロックされなくなります。

これは、スケジュールされたタスクで PowerShell を実行するための一般的な推奨事項であり、作成者の修正と連携して機能することに注意してください。

「powershell /?」を参照してください。コマンドプロンプトから。

于 2012-10-06T09:58:44.953 に答える