Добрый день, ребята,
Фон;
Существует сценарий, который создает пользователей AD, а затем перемещает их в облако. Я пытаюсь реализовать какой-либо тип аварийного переключения в сценарии. Идея заключается в том, что в случае, если что-то случится с запросом на перемещение, например, серверами, не успевшими синхронизироваться, сценарий может подождать 3 минуты и отправить запрос синхронизации на серверы, а затем повторить попытку.
выпуск;
8/10 пользователей переходят в облако без проблем. Проблема с 2/10. Когда они терпят неудачу на пробном лице, сценарий обычно переходит к лицу Catch. Он ждет 3 минуты и отправляет запрос синхронизации, но при попытке запустить New-CLMoveRequest я получаю эту ошибку;
"Службе репликации почтовых ящиков не удалось подключиться к удаленному серверу с использованием предоставленных учетных данных. Пожалуйста, проверьте учетные данные и повторите попытку.
Вызов на https://webmail.domain.com/EWS/mrsproxy.svc' не удался. Сведения об ошибке: HTTP-запрос не авторизован по схеме аутентификации клиента
«Переговоры». Заголовок аутентификации, полученный от сервера, был 'Negotiate, NTLM'. -> Удаленный сервер возвратил ошибку: (401) Unauthorized .. ->
HTTP-запрос не авторизован с помощью схемы аутентификации клиента «Согласование». Заголовок аутентификации, полученный от сервера, был
"Переговоры, NTLM. -> Удаленный сервер возвратил ошибку: (401) Unauthorized. "
$ Localcred имеет мои учетные данные, и при первой попытке переместить пользователя он берет мой кредит без проблем. По какой-то причине во второй раз $ Localcred теряет мои кредиты.
Вопросы; Что я делаю не так? Кроме того, есть ли способ улучшить сценарий?
Спасибо за ваше время
try {
# Move user to the cloud
New-CLMoveRequest -identity $ADuserObject.Mailbox `
-Remote -RemoteHostName 'webmail.Domain.com' `
-RemoteCredential $Localcred `
-TargetDeliveryDomain 'Domain.mail.onmicrosoft.com' `
-BadItemLimit 10 -LargeItemLimit 20 -ErrorAction stop -ErrorVariable ErrorlorLog
}
catch {
# Move user to the cloud # Wait 3 minutes
Start-Sleep -Seconds 180
Write-Warning "The servers have not sync yet,waiting 90 sec and running sync"
# Run a Sync on Office365
invoke-command -computername "ComputerName" {start-adsyncsynccycle -policytype delta};
# Move user to the cloud
New-CLMoveRequest -identity $ADuserObject.Mailbox `
-Remote -RemoteHostName 'webmail.domain.com' `
-RemoteCredential $Localcred `
-TargetDeliveryDomain 'domain.mail.onmicrosoft.com' `
-BadItemLimit 10 -LargeItemLimit 20
}