2013-06-25 2 views
0

받은 편지함에있는 메일의 일부 속성을 읽으려면 EWS/Powershell을 통해 편지함을 순환하려고합니다. 이 기능은 대부분의 사서함에서 작동하지만 모든 사용자에게 해당되는 것은 아닙니다. 나는 결과를 통해 루프에 페이징을 사용하고 있습니다 :Powershell을 사용하는 EWS : "속성 값이 잘못되었습니다."

$moreItems=$true 
$Offset=100 
$pageSize=100 
while($moreItems) 
{ 
$itemView = new-object Microsoft.Exchange.WebServices.Data.ItemView($pageSize,$Offset,[Microsoft.Exchange.WebServices.Data.OffsetBasePoint]::Beginning) 

... 

$mails = $currentFolder.FindItems($itemView) 


foreach($mail in $mails) 
{ 
    #add-contnet -path "output.txt" -value $mail.subject 
} 

$itemView.Offset += $mails.Items.Count 
if ($mails.MoreAvailable -eq $false) 
{ 
     $MoreItems = $false 
} 
if ($MoreItems) 
{ 
    $Offset += $pageSize 
} 
} 

나는이 일부 사서함에 대해 완벽하게 작동하고 말했듯이 - 일부는 예외로 실행됩니다. "속성은 잘못된 값이 있습니다"

이 오류는이 코드 라인에서 발생합니다

$mails = $currentFolder.FindItems($itemView) 

당신이 볼 수 있듯이, 나는 txt 파일로 모든 메일의 제목을 쓰고 있어요. 페이지 크기 및 오프셋에 따라 출력 파일에 다소 많은 제목 (메일 항목)이 나열됩니다. 예 : 받은 편지함에 2000 개의 항목이 있다면 출력 파일에 1008 개의 항목이 나열 될 것입니다. pagesize를 1000으로 설정하면 1007과 같이 설정하면 1907이 나열됩니다. 어쨌든 나는 항상 예외를 얻는다 (그러나 다시, 몇몇 우편함에 대해서만).

아이디어가 더 있으십니까?

+0

에게 ...이 일을 $ currentFolder 무엇인가? – Peter

+0

이 링크를 확인하십시오. 도움이되는지 확실하지 않습니다. 그렇다면 스크립트에 문제가 없으면 PS가 작동하는 방식 일뿐입니다. http://social.technet.microsoft.com/Forums/exchange/en-US/86587dc9-b602-417c-9108-ba259cd1f4be/ews-getitem-request-fielduri-calendaruid-property-has-an-invalid-value – Peter

답변

0

답변 : ipm.note 이외의 다른 항목이 편지함에있을 때 - 예를 들어. 회의 요청. 난 단지 IPM.NOTE 필터링하는 searchfilter을했고, finditems() 메소드에 전달 -

관련 문제