2

이 서문을 시작하기 전에 미국에서이 스크립트를 미국 사서함 서버에 대해 실행하고 있습니다. 내가 삭제하고 싶은 메일 또한 PST로 내 보낸 메일입니다.DeleteContent 항목을 올바르게 삭제하지 않겠습니다.

사서함 내보내기는 ContentFilter을 사용하고 deleteContent는 SearchQuery을 사용합니다. 정보를 모으는이 두 가지 행동은 나에게 매우 다른 행동을하는 것처럼 보입니다.

내가 PST에 보내고 싶은 메일을 성공적으로 내보낼 수 있었지만 콘텐츠를 삭제하면 큰 문제가 발생했습니다.

아래 코드를 사용하여 현재 get-date 이전의 사서함 항목을 삭제하려고합니다. 나는 이것에 대한 마이크로 소프트의 문서를 따라 왔지만, 나를 위해 일하는 것은 아무것도 없다.

$date = (get-date -hour 00 minute 00 second 00).ToShortDateString() 
Search-Mailbox -Identity "id" -SearchQuery "Received:<$($date)" -deleteContent -force 

이것은 작동하지 않습니다.

The property keyword isn't supported. 
    + CategoryInfo   : InvalidArgument: (:) [], ParserException 

내 문자열을 수정 했으므로 아래 편집 내용을 참조하십시오. 문제는 여전히 지속됩니다. <이 쿼리를 엉망으로 만드는 것처럼 보입니다.


편집

"Received:<'$date'" - 나는로 지정할 때이 실행 내 어떤 결과가 돌아 오지 그러나 SearchQuery.

<은 내 쿼리를 엉망으로 만드는 것 같습니다. <을 제거하고 검색어를 "Received:'$date'"으로 남겨두면 오늘 날짜의 모든 이메일을 삭제합니다.

또한이 작업을 수행 할 때 시간은 5 시간 씩 상쇄됩니다. 나는 미국에 있으며이 서버를 실행중인 사서함 서버는 미국에 있지만 아직 UTC 시간을 사용할 수있는 것처럼 작동합니다. 이 문제를 어떻게 해결할 수 있습니까? 더 중요하게도, 왜 나는 일하는 것보다 덜하지 못합니다.


편집 2 :

나는 또한 "수신 -lt '$ 날짜'"이 또한 작동하지 않습니다으로 querys을하려고했습니다.

답변

4

시도 : $date.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ")

위에서 당신에게 ISO 8601 날짜를 얻을 것이다, 그것은 전체 일을 사용하는 검색 쿼리처럼 보이지 않지만. 나는 아래의 구문은 적어도 날짜 부분에 대해 작동하는 것 찾을 않았다 보인다 때문에 Exchange가 시간을 무시 불행하게도 http://msdn.microsoft.com/en-us/library/office/ee558911(v=office.15).aspx

: 및 SearchQuery 인수에 설명되어 KQL을 사용

$date = (get-date).Date.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ") 
Search-Mailbox -Identity "id" -SearchQuery "Received<$date" -deleteContent -force 

부분, 나는 이것이 UTC 자정에 필터링에 국한 될 것이라고 추측하고있다. 문서를 보면 다음과 같은 결과를 얻을 수있는 속기가 있습니다.

Search-Mailbox -Identity "id" -SearchQuery "Received<today" -deleteContent -force 
+0

내 날짜를 선택하는 것이 잘못된 부분이 아닙니다 ...내 쿼리는 어쨌든 엉망이된다. – Johnrad