Перемещение пользователя на Exchange в облаке с помощью Try / Catch - PullRequest
0 голосов
/ 31 октября 2018

Добрый день, ребята,

Фон; Существует сценарий, который создает пользователей 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 
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...