Я пытаюсь установить Exchange Cu 14 с сервера A на сервер B через пульт Powershell и команду Invoke.
Установка завершается успешно при запуске локально на сервере B от имени того же пользователя, вошедшего в систему ... Но не удаленно с помощью команды Invoke с другого сервера.
Работает на сервере A (упрощенная версия и правильные $ SetupPath и $ Params):
$ScriptBlock_ExchangeInstallation = {
Start-Process $SetupPath -ArgumentList $Params -NoNewWindow
}
$SessionOptions = New-PSSessionOption -MaxConnectionRetryCount 50 -IdleTimeout 86400000 -OperationTimeout 21600000
$SecPw= ConvertTo-SecureString "PwSuperSecure!" -AsPlainText -Force
$Creds = New-Object System.Management.Automation.PSCredential ("MrMarshall\Andreas.marshall", $SecPw)
Invoke-Command -ComputerName "ServerB" -SessionOption $SessionOptions -ScriptBlock $ScriptBlock_ExchangeInstallation -ErrorAction Stop -Authentication Kerberos -Credential $Creds
В неудачных журналах Exchange. Я вижу ошибку:
[11/12/2019 21: 34: 18.0728] [0] [ERROR] Операция Active Directory завершилась неудачно. Предоставленные учетные данные для MRMARSHALL \ andreas.marshall недействительны. [11/12/2019 21: 34: 18.0728] [0] [ОШИБКА] Указанные учетные данные недействительны.
Мне кажется, что учетные данные не передаются правильно в DC во время установки. Есть идеи, как я могу начать установку другим способом?
Еще исключения.
Microsoft.Exchange.Configuration.MonadDataProvider.MonadDataAdapterInvocationException: операция Active Directory завершилась ошибкой. Предоставленные учетные данные для MRMARSHALL \ andreas.marshall недействительны. Выполнялась команда Get-OrganizationConfig. ---> Microsoft.Exchange.Data.Directory.ADInvalidCredentialException: операция Active Directory завершилась ошибкой. Предоставленные учетные данные для MRMARSHALL \ andreas.marshall недействительны. ---> System.DirectoryServices.Protocols.LdapException: предоставленные учетные данные недействительны.
После некоторого чтения это проблема с двойным прыжком, как прокомментировал @Semicolon. Теперь я не мог настроить Kerberos для этого, поэтому я пошел другим путем, запланировав задачу локально и запустив ее для выполнения работы за меня.
Это некрасиво, но пока работает!
Я вызываю приведенный ниже код, чтобы запустить процесс локально на удаленных серверах.
$Action = New-ScheduledTaskAction -Execute $SetupPathUNC -Argument $MediaParametersExchangeCU14
$Settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -WakeToRun
Register-ScheduledTask -Action $Action -User "MrMarshall\andreas.marshall" -Password "Bytidag123!" -TaskName "Start_ExchangeInstallation" -RunLevel Highest -Settings $Settings -Force
Start-ScheduledTask -TaskName "Start_ExchangeInstallation" -ErrorAction Stop | Out-Null
while ((Get-ScheduledTask -TaskName 'Start_ExchangeInstallation').State -ne 'Ready') {
Write-Output "$(Get-Date) Waiting on scheduled task..." | Tee-Object "$LogPath/_MainLog.txt" -Append
Start-Sleep 60
}