2013-08-08 1 views
1

내가 EWS는 API를 관리하여 교환에 대한 몇 가지 약속을 업데이트하기 위해 노력하고있어에서 API 예외를 관리하지만, 업데이트를 호출 할 때 나는 다음과 같은 오류가 점점 계속 :파워 쉘 EWS는 업데이트

Exception: System.Management.Automation.MethodInvocationException: Exception calling "Update" with "1" argument(s): "Set action is invalid for property." ---> Microsoft.Exchange.WebServices.Data.ServiceResponseException: Set action is invalid 
        for property. 
         at Microsoft.Exchange.WebServices.Data.ServiceResponse.InternalThrowIfNecessary() 
         at Microsoft.Exchange.WebServices.Data.ExchangeService.InternalUpdateItems(IEnumerable`1 items, FolderId savedItemsDestinationFolderId, ConflictResolutionMode conflictResolution, Nullable`1 messageDisposition, Nullable`1 
        sendInvitationsOrCancellationsMode, ServiceErrorHandling errorHandling) 
         at Microsoft.Exchange.WebServices.Data.ExchangeService.UpdateItem(Item item, FolderId savedItemsDestinationFolderId, ConflictResolutionMode conflictResolution, Nullable`1 messageDisposition, Nullable`1 
        sendInvitationsOrCancellationsMode) 
         at Microsoft.Exchange.WebServices.Data.Item.InternalUpdate(FolderId parentFolderId, ConflictResolutionMode conflictResolutionMode, Nullable`1 messageDisposition, Nullable`1 sendInvitationsOrCancellationsMode) 
         at Microsoft.Exchange.WebServices.Data.Item.Update(ConflictResolutionMode conflictResolutionMode) 
         at CallSite.Target(Closure , CallSite , Object , Object) 
         --- End of inner exception stack trace --- 
         at System.Management.Automation.ExceptionHandlingOps.CheckActionPreference(FunctionContext funcContext, Exception exception) 
         at System.Management.Automation.Interpreter.ActionCallInstruction`2.Run(InterpretedFrame frame) 
         at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame) 
         at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame) 

이 오류는 매우 설명되지 않습니다 , 그래서 나는 어디서부터 시작해야할지 정말로 모른다. 내가하려고하는 것은 몇 가지 약속의 시작과 끝 시간을 변경하는 것입니다. 관련 코드는 다음과 같습니다 : 나는 충돌 해결 모드를 변경 시도 인해 이전 오류로 Item.StartTimeZone 속성을 설정 했어

$Items = $service.FindAppointments($Calendar.Id,$CalendarView) 
foreach($Item in $Items.Items) { 
    $Item.Load() 
    $Item.StartTimeZone = [System.TimeZoneInfo]::Local 
    if ($Item.Subject -eq '01Mar13 15:00 RECD-MTWRF to 30Sep13 17:00'){ 
     if ($Item.Start.ToString("dddd") -eq 'Friday'){ 
      $Item.Start = $Item.Start.AddHours(1) 
     } 
    } 
    elseif ($Item.Subject -eq '05Mar13 10:00 RECD-TR to 26Sep13 12:00'){ 
     if ($Item.Start.ToString("dddd") -eq 'Tuesday'){ 
      $Item.Start = $Item.Start.AddHours(1) 
      $Item.End = $Item.End.AddHours(1) 
     } 
    } 
    try { 
     $Item.Update([Microsoft.Exchange.WebServices.Data.ConflictResolutionMode]::AlwaysOverwrite) 
    } 
    catch { 
     $error[0] | fl -force 
    } 
} 

. 무엇이 잘못 될 수 있는지에 대한 아이디어가 있습니까? 미리 감사드립니다.

+1

'$ CalendarView'의 정의는 무엇인가? $ CalendarView = 새-개체 Microsoft.Exchange.WebServices.Data.CalendarView ($ STARTDATE, $ 종료 날짜) STARTDATE 및 ENDDATE : – SliverNinja

+0

$ CalendarView는 기본적으로 보는 일정의 범위, 즉 표시 이미 정의 된 datetime 객체입니다. –

답변

-1

나는이 시도하고 나를 위해 잘 작동 한 :

$Item.Update("AlwaysOverwrite") 
+0

내가 그 이유를 안다면? –