1

今日の日付より前に Exchange 2013 メールボックスの内容を削除しようとしています。Get-Dateこれは、コマンドレットを呼び出す 2 番目に固有のものでなければなりません。

このコードはエラーなしで実行されます:

Search-Mailbox myID -SearchQuery Received:<Get-Date -DeleteContent -Force

これを実行すると、PowerShell に検索進行状況バーが表示されますが、データが見つかりません。使用しているメールボックスを 3 回チェックしましたが、4/24/14/ hh:mm:ss よりも古いデータが含まれています。


私は数え切れないほどのバリエーションを試しました。例は次のとおりです。

Search-Mailbox whism_j -SearchQuery "Received:<$((Get-Date).ToString("yyyy-MM-ddTHH:mm:ssZ"))" -DeleteContent -Force`

The property keyword isn't supportedエラーが発生するため、このコマンドは実行されません。

4

4 に答える 4

1

私はこの形式を使用しており、正常に動作します

したがって、これはうまくいくはずです: -コンテンツの削除

秒に限定せずに日付範囲を検索したい場合は、はるかに簡単です: Search-Mailbox whism_j -SearchQuery "Received:20/09/2014..23/09/2014" -deleteContent

また、SearchQuery を使用して Search-Mailbox を実行すると問題が発生し、結果が見つかりませんが、SearchQuery を使用しない Search-Mailbox ではメッセージが表示されます。動作しているように見えるチェック項目が 2 つあります。まず、データベースを別のサーバーに移動してから (分/時間/日?) 待ってから、再度検索します。通常、私はメッセージを見つけることができます。次に、このコマンド Get-FailedContentIndexDocuments test@test.com | で実際にインデックスが作成されているかどうかを確認します。where {$_.subject -match "some words"} |ft 件名、説明 -AutoSize

于 2014-09-23T05:16:51.747 に答える
1

あなたが見ている問題は、日付文字列に空白が含まれているため、フィルタリングする別のプロパティとして解釈していると思います。だからそれは読んでいます:

"Received:<$((get-date).tostring("yyyy-MM-ddTHH:mm:ssZ"))"

これは次のように展開されます。

"Received:<2014-04-24 10:51:23-08"

ここには 2 つのプロパティが表示されているReceived:10:思いますが、日付が二重引用符で囲まれていないためです。これはあなたのために働くはずです:

Search-Mailbox whism_j -SearchQuery Received:<"$((get-date -f "yyyy-MM-ddTHH:mm:ss").tostring())" -deleteContent -force

編集:申し訳ありませんが、私の間違いです。何らかの理由で T はタブだと思っていましたが、文字 "T" として変換されます。また、全体ではなく、検索する項目だけを引用符で囲みます。回答を更新しました。Exchange では、次のようにクエリが表示されます。

Received:<"2014-04-24T10:51:23"

すべての時間は UTC であると想定されているため、タイム ゾーン オフセットはオプションです。Microsoft の MSDN ページから:

すべての日付/時刻の値は、GMT (グリニッジ標準時) タイム ゾーンとも呼ばれる UTC (協定世界時) に従って指定する必要があります。UTC タイム ゾーン識別子 (末尾の「Z」文字) はオプションです。

于 2014-04-24T17:58:32.987 に答える