Вот суть моей проблемы.У меня есть программа на C #, которая вызывает несколько командлетов PowerShell.
Все вызовы работают, кроме случаев, когда я получаю сообщение «Connect-AzureAD -TenantId XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
Но способ, которым это "терпит неудачу", странен.Позволяет только ввести мою учетную запись Microsoft, но не пароль.Если я снова запускаю его, я могу войти в систему правильно, и это работает.
Я думал, что выбил какой-то тайм-аут, но каждый вызов ниже приводит к исключению Null Reference Exception.Вы можете видеть мои комментарии разочарования.
// All of these are set to null...so what gives?
// all generate NRE's
//Debug.Print("MaxIdle Timeout is |{0}|", runspace.ConnectionInfo.MaxIdleTimeout.ToString());
//Debug.Print("Current Idle Timeout is |{0}|", runspace.ConnectionInfo.IdleTimeout.ToString());
//Debug.Print("Operation Timeout is |{0}|", runspace.ConnectionInfo.OperationTimeout.ToString());
Мысли, идеи, комментарии?
Я могу опубликовать больше кода, если это необходимо, но все остальное работает все время.
В комментарии я добавил CR, но он, похоже, ничего не делал (я попробую CR + LF, потому что я понятия не имею, что здесь на самом деле сломано, поэтому попытаться не вредно).
Итак ... после вызова PowerShell я собираю результаты следующим образом:
foreach (PSObject outputObject in results)
и в моем наборе результатов есть следующие четыре ошибки: {Произошла одна или несколько ошибок: на основе браузераНе удалось завершить диалог аутентификации.Причина: сервер или прокси-сервер не найден.} {Произошла одна или несколько ошибок.} {Не удалось завершить диалоговое окно проверки подлинности на основе браузера.Причина: сервер или прокси-сервер не найден.} {Произошла одна или несколько ошибок. Не удалось завершить диалог проверки подлинности на основе браузера.Причина: сервер или прокси-сервер не найден.}
Он говорит мне, что я уже знаю (что аутентификация не работает), но я все еще не понимаю, что является настоящей проблемой.
Добавление более подробной информации
Итак ... Я попробовал несколько вещей.Я добавил свою учетную запись Microsoft для подключения.Результат был еще более странным - большая задержка, отсутствие пароля и невозможность входа в систему.
Затем я настроился на настройку принципала приложения, как подробно описано здесь: «Использование субъекта службы для подключения ккаталог в PowerShell "https://docs.microsoft.com/en-us/powershell/azure/active-directory/signing-in-service-principal?view=azureadps-2.0
Я все настроил и проверил в PowerShell, что я могу подключиться, затем я поместил точно такой же (скопировал и вставил) Connect-AzureAD с владельцем, идентификатором приложенияи отпечаток сертификата, который я использовал в PowerShell.Он потерпел неудачу с этими «новыми» ошибками - все еще как-то четыре: произошла одна или несколько ошибок.Произошла ошибка при отправке запроса.Не удалось разрешить удаленное имя: 'login.microsoftonline.com' Произошла одна или несколько ошибок.
Завтра я запустлю Wireshark.У меня такое ощущение, что все эти ошибки вводят в заблуждение, хотя тот факт, что они работают со второй попытки, просто ошеломляет.