Мне нужна помощь в импорте бронирований / встреч в office365. Я могу экспортировать информацию о бронировании из нашей старой веб-системы в CSV, но мне нужен способ импорта в обмен в office365.
Самый многообещающий метод, который я нашел, - это использование веб-служб Exchange для подключения к облаку с помощью PowerShell, а затем использование олицетворения для повторного создания заказов в качестве соответствующих пользователей для вновь созданных почтовых ящиков комнат. Но я открыт для других предложений, если есть лучший способ.
Проблема, с которой я сейчас сталкиваюсь с EWS и powershell (например: http://mikepfeiffer.net/2011/01/creating-calendar-items-with-powershell-and-the-ews-managed-api/), когда я пытаюсь подключиться, я получаю ошибки автообнаружения. Возможно ли это в Office 365?
Обновление: Привет, Глен Весы,
Благодарим вас за ваш пример, выглядит многообещающим, но я все еще получаю сообщение об ошибке автообнаружения, когда я запускаю ваш код выше, конкретную ошибку (ошибки) и описание того, что я делаю, шаг за шагом ниже. Я надеюсь, что делаю что-то явно не так, и вы сможете меня поправить
Я запускаю powershell и подключаюсь к o365 с такими учетными данными:
$loginUserName = "[email protected]"
$PWord = ConvertTo-SecureString –String "secret" –AsPlainText -Force
$Credential = New-Object –TypeName System.Management.Automation.PSCredential –ArgumentList $loginUserName, $PWord
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Credential -Authentication Basic -AllowRedirection
Import-PSSession $Session
Connect-MsolService -Credential $Credential
Затем загрузите вашу функцию и попробуйте такую тестовую команду:
$Start = Get-Date
$End = (Get-Date).AddHours(1)
Create-Appointment -MailboxName [email protected] -Subject "Test appointment" -Start $Start -End $End -Body "Test Body" -Credentials $Credential -Location "sdfkjhsdfjh"
Ошибка:
Exception calling "AutodiscoverUrl" with "2" argument(s): "The Autodiscover service couldn't be located."
At \\blahblah\bookings.ps1:100 char:3
+ $service.AutodiscoverUrl($MailboxName,{$true})
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : AutodiscoverLocalException
Using CAS Server :
Exception calling "Bind" with "2" argument(s): "The Url property on the ExchangeService object must be set."
At \\blahblah\bookings.ps1:114 char:3
+ $Calendar = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($service,$folde ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : ServiceLocalException
Exception calling "Save" with "2" argument(s): "Value cannot be null.
Parameter name: destinationFolderId"
At \\blahblah\bookings.ps1:127 char:3
+ $Appointment.Save($Calendar.Id,[Microsoft.Exchange.WebServices.Data.SendInvita ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : ArgumentNullException