Как заставить работать режим EWS конфликта-разрешения - PullRequest
0 голосов
/ 23 октября 2019

Мне нужно будет пройти через множество почтовых ящиков и удалить «copy:» из строки темы множества встреч. На данный момент код работает нормально, за исключением того, что после того, как код выполняет режим конфликта resoltuion, alwaysoverwrite и я вижу успешный результат, это не сохраняет обновление.

Я пытался использовать функцию сохранения, но она не работает

#Variables and constants
$startdate = Get-Date
$enddate = $startdate.AddDays(365)
#$string = 'check'


#create a remote session to exchange
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://exchangeserver.com/PowerShell/ -Authentication Kerberos
Import-PSSession $Session -DisableNameChecking:$disablenamechecking

$dllpath = "C:\Program Files\Microsoft\Exchange\Web Services\2.2\Microsoft.Exchange.WebServices.dll"
[Void] [Reflection.Assembly]::LoadFile($dllPath) 

$MailboxName = "firstname.lastname@company.com"
$ExchVer = [Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2010_SP2
$exchService = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService($ExchVer)
$exchservice.ImpersonatedUserId = new-object Microsoft.Exchange.WebServices.Data.ImpersonatedUserId([Microsoft.Exchange.WebServices.Data.ConnectingIdType]::SmtpAddress, $MailboxName)
$exchService.UseDefaultCredentials = $true
$exchService.AutodiscoverUrl($MailboxName)
$Calendar = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($exchservice,[Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Calendar)
$CalendarView = New-Object Microsoft.Exchange.WebServices.Data.CalendarView($StartDate,$EndDate,1000)
$FindItems = $calendar.FindAppointments($CalendarView)
if($FindItems.Items.Count -gt 0)
    {
      foreach($Item in $finditems){
          if ($item.Subject -like "check*") {
                $item.subject.substring(6)
                **$item.update([Microsoft.Exchange.WebServices.Data.ConflictResolutionMode]::AlwaysOverWrite)
                # the overwrite is successful but it's not saving**
                #$item.Subject
                }
      #$ItemColl.Add($Item)
            }
    }

 $item.Subject

1 Ответ

1 голос
/ 23 октября 2019

Ваш код, по-видимому, не вносит никаких изменений, например

$item.subject.substring(6)

Просто напечатает первые 6 символов субъекта, если вы хотите изменить тему, вам потребуется

$ item.subject = "бла-бла и т. Д."

Вам не нужно вызывать функцию сохранения, поскольку она действительна только в том случае, если объект новый, все, что нужно, это обновить, но он будет делать все, только если естьсвойство, которое было изменено, которого нет в приведенном выше примере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...