Назад | Перейти на главную страницу

Добавление командлета Azure - AzureRmAccount не работает по корпоративной линии

В настоящее время я изучаю, как создавать лазурные среды с помощью командлетов PowerShell Resource Management.
Классический способ работы не имел проблем, я мог использовать Add-AzureAccount и это позволит мне получить доступ к моим подпискам.

Однако с новыми командлетами Resource Manager, когда я использую Add-AzureRmAccount Я получаю одну из двух ошибок.

При использовании сохраненных учетных данных с помощью $Cred = Get-Credentials, а затем войдите в систему, используя Add-AzureRmAccount -Credential $cred Я получаю следующую ошибку:

Не удалось получить доступ к обмену метаданными ws.

При использовании приглашения входа в систему. Это означает, что я просто набираю Add-AzureRmAccount и перенаправляет меня на страницу системы единого входа моей компании. В которой я успешно вхожу в систему. Я получаю следующую ошибку:

Произошла ошибка при отправке запроса.

Когда я пытался использовать командлет из дома, используя vpn для подключения к тому же ноутбуку, который я использовал раньше. Я отлично могу подключиться, используя Add-AzureRmAccount и следуя подсказкам для входа в систему. Использование сохраненных $credentials по-прежнему не работает с ошибкой обмена метаданными.

Я предполагаю, что метод сохраненных учетных данных не работает, потому что он не может перенаправить на SSO без интерактивного запроса.
Однако я не уверен, что могло вызвать сбой интерактивного входа в систему, так как я четко могу получить доступ к SSO, а Add-AzureAccount командлет работает на том же компьютере.

В чем разница между Add-AzureAccount и Add-AzureRmAccount командлеты, которые могут вызывать это?

ОБНОВИТЬ:

Ошибка полной трассировки стека:

Message        : An error occurred while sending the request.
Data           : {}
InnerException : System.Net.WebException: The remote server returned an error: (407) Proxy Authentication Required.
                    at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
                    at System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)
TargetSite     : Void ThrowForNonSuccess(System.Threading.Tasks.Task)
StackTrace     :    at Microsoft.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
                    at Microsoft.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
                    at Microsoft.Azure.Subscriptions.TenantOperationsExtensions.List(ITenantOperations operations)
                    at Microsoft.Azure.Commands.ResourceManager.Common.RMProfileClient.ListAccountTenants(AzureAccount
                 account, AzureEnvironment environment, SecureString password, ShowDialog promptBehavior)
                    at Microsoft.Azure.Commands.ResourceManager.Common.RMProfileClient.Login(AzureAccount account,
                 AzureEnvironment environment, String tenantId, String subscriptionId, String subscriptionName,
                 SecureString password)
                    at Microsoft.Azure.Commands.Profile.AddAzureRMAccountCommand.ProcessRecord()
                    at System.Management.Automation.Cmdlet.DoProcessRecord()
                    at System.Management.Automation.CommandProcessor.ProcessRecord()
HelpLink       :
Source         : Microsoft.Threading.Tasks
HResult        : -2146233088

Похоже, моя ошибка связана с брандмауэром.
Я не уверен, почему одна команда (Add-AzureRmAccount) обнаруживает ошибку, а более старая версия (Add-AzureAccount) не.

На основании комментария, сделанного Колин1337 о разнице, скорее всего, в веб-API.
И ошибка аутентификации связана с неправильной аутентификацией прокси-сервера.

Аналогичный вопрос по переполнение стека где другой, также веб-командлет api, имел аналогичную ошибку, предоставил решение.
Как упоминалось в ответ там Мне просто нужно добавить следующий код в начало моих скриптов:

[System.Net.WebRequest]::DefaultWebProxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials