Поделиться через


Устранение неполадок с модулем Az PowerShell

Включение ведения журнала отладки

Одним из первых шагов, которые необходимо предпринять при устранении неполадок с модулем Az PowerShell, является включение ведения журнала отладки.

Чтобы включить ведение журнала отладки для каждой команды, укажите параметр отладка.

Get-AzResource -Name 'DoesNotExist' -Debug

Чтобы включить ведение журнала отладки для всего сеанса PowerShell, задайте для переменной DebugPreference значение Continue.

$DebugPreference = 'Continue'

Сообщения объявлений в сценариях автоматизации

При подключении к Azure с помощью Azure PowerShell сообщения объявлений отображаются с помощью потока сведений PowerShell, чтобы предотвратить изменение возвращаемых выходных данных на основе объектов. Хотя мы предприняли все усилия, чтобы гарантировать, что сообщения объявлений не влияют на ваш опыт, существуют некоторые сценарии автоматизации, в которых они могут повлиять на использование. При возникновении проблем рекомендуется отключить поток информации в этих сценариях:

Connect-AzAccount -Subscription '<subscription name or id>' -InformationAction Ignore

Диспетчер веб-учетных записей (WAM)

  • Интерактивный метод входа не может открыть окно для WAM и возвращает ошибку: пользователь отменил проверку подлинности.
  • Командлеты Azure PowerShell не могут выполняться после входа с помощью имени пользователя и пароля или кода устройства.
  • Всплывающее окно WAM не отображает опцию рабочей и учебной учетной записи.
  • Метод интерактивного входа не может открыть окно WAM в консоли интегрированной среды выполнения скриптов Windows PowerShell.

Обходной путь для этих проблем — отключить WAM:

Update-AzConfig -EnableLoginByWam $false
  • Всплывающее окно WAM для выбора учетной записи не легко найти. Сверните другие окна, чтобы найти всплывающее окно.

Установка

В этом разделе содержится список решений для распространенных проблем при установке модуля Az PowerShell.

Сосуществование Az и AzureRM

Предупреждение

Мы не поддерживаем одновременное установку модулей AzureRM и Az PowerShell в Windows PowerShell 5.1.

В сценарии, в котором необходимо установить модуль AzureRM и Az PowerShell в одной системе Windows:

  • AzureRM необходимо установить только в текущей области пользователя Windows PowerShell 5.1.
  • Установите модуль Az PowerShell в PowerShell 7.2 или более поздней версии.

Предупреждение

Модуль AzureRM PowerShell официально устарел с 29 февраля 2024 г. Пользователям рекомендуется выполнить миграцию из AzureRM в модуль Az PowerShell, чтобы обеспечить постоянную поддержку и обновления.

Хотя модуль AzureRM по-прежнему может функционировать, он больше не обслуживается и не поддерживается, оставляя дальнейшее использование на усмотрение и риск пользователя. Ознакомьтесь с нашими ресурсами миграции , чтобы получить рекомендации по переходу на модуль Az.

Visual Studio

Более старые версии Visual Studio могут устанавливать Azure PowerShell в рамках рабочей нагрузки разработки Azure, которая устанавливает модуль AzureRM. Azure PowerShell можно удалить с помощью установщика Visual Studio или через опцию "Удалить" в разделе возможностей приложений &. Если вы уже установили PowerShell 7.x, может потребоваться вручную установить модуль Az PowerShell.

Прокси-сервер блокирует подключение

Если вы получаете ошибки из Install-Module о том, что галерея PowerShell недоступна, возможно, вы используете прокси-сервер. Различные операционные системы и сетевая среда имеют разные требования к настройке прокси-сервера на уровне системы. Обратитесь к системному администратору для параметров прокси-сервера и как настроить их для вашей среды.

Сам PowerShell не может быть настроен для автоматического использования этого прокси-сервера. С помощью PowerShell 5.1 и более поздних версий настройте сеанс PowerShell для использования прокси-сервера с помощью следующих команд:

$webClient = New-Object -TypeName System.Net.WebClient
$webClient.Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials

Если учетные данные операционной системы настроены правильно, эта конфигурация направляет запросы PowerShell через прокси-сервер. Чтобы этот параметр сохранялся между сеансами, добавьте команды в профиль PowerShell .

Чтобы установить пакет, прокси-сервер должен разрешить подключения HTTPS к www.powershellgallery.com.

Ссылка на объект не установлена для экземпляра объекта

Сообщение "ссылка на объект не указывает на экземпляр объекта" означает, что вы ссылаетесь на объект, значение которого равно NULL, или на ресурс Azure, который не существует, или у вас нет прав на доступ.

$resourceId =  '/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/<resource-group-name>/providers/Microsoft.Web/sites/<webapp-name>/privateEndpointConnections/<endpoint-name>'
Get-AzPrivateEndpointConnection -ResourceId $resourceId
Get-AzPrivateEndpointConnection: Object reference not set to an instance of an object.

Чтобы убедиться, что указанный ресурс Azure существует, можно использовать командлет Get-AzResource.

Get-AzResource -ResourceId $resourceId

Проблемы с разрешениями командлетов AzAD

Модуль Az PowerShell использует API Microsoft Graph. Для администрирования или управления ресурсами в Azure с помощью модуля Az PowerShell требуются те же разрешения, что и для выполнения идентичной задачи с портала Azure или любого другого средства командной строки Azure. Дополнительные вопросы о разрешениях см. в справочнике по разрешениям Microsoft Graph.

Параметры запроса Microsoft Graph

Командлеты AzAd в Az.Resources теперь поддерживают параметры запроса и, а также поисковые параметры и. Дополнительные сведения о синтаксисе см. в ранее указанных ссылках.

Get-AzAdGroupMember не возвращает учётные записи службы

Из-за ограничений текущего API Graph служебные принципалы не возвращаются командой Get-AzAdGroupMember в Az 7.x. В качестве обходного решения можно использовать Invoke-AzRestMethod с бета-версией API Microsoft Graph.

В следующем примере требуется модуль Az PowerShell. Замените myGroupName в первой строке именем группы.

$Group = Get-AzADGroup -DisplayName myGroupName
((Invoke-AzRestMethod -Uri "https://graph.microsoft.com/beta/groups/$($Group.id)/members").Content |
  ConvertFrom-Json).value |
  Select-Object -Property DisplayName, Id, @{label='OdataType';expression={$_.'@odata.type'}}

Команда найдена, но не удалось загрузить

Следующее сообщение возвращается PowerShell при попытке выполнить любую из команд Az PowerShell.

Connect-AzAccount: The 'Connect-AzAccount' command was found in the module 'Az.Accounts', but the module could not be loaded. For more information, run 'Import-Module Az.Accounts'.

Это сообщение возникает при наличии модулей Az и AzureRM PowerShell, установленных в одной системе под управлением Windows, и они существуют в $env:PSModulePath для той же версии PowerShell.

Важный

При установке AzureRM в области AllUsers Windows PowerShell, он устанавливается в месте, которое является частью $env:PSModulePath для PowerShell 7. Это не поддерживается из-за конфликтов между модулями AzureRM и Az PowerShell.

Az и AzureRM могут сосуществовать в одной системе Windows, но только если AzureRM установлен в CurrentUser области Windows PowerShell и Az, установленной в PowerShell 7. Дополнительные сведения см. в статье Установка модуля Az PowerShell.

Предупреждение

Модуль AzureRM PowerShell официально устарел с 29 февраля 2024 г. Пользователям рекомендуется выполнить миграцию из AzureRM в модуль Az PowerShell, чтобы обеспечить постоянную поддержку и обновления.

Хотя модуль AzureRM все еще может работать, он больше не поддерживается или сопровождается, и любое продолжение его использования происходит на усмотрение и риск пользователя. Ознакомьтесь с нашими ресурсами по миграции для получения рекомендаций по переходу на модуль Az.

В MacOS ошибка возвращается при сбое авторизации KeyChain

При запуске Azure PowerShell в MacOS может возникнуть сообщение об ошибке при попытке входа в учетную запись Azure из сеанса PowerShell.

DeviceCodeCredential authentication failed: Persistence check failed. Reason: KeyChain authorization/authentication failed. .Error code: -25293. OS error code -25293.

В качестве обходного решения этой проблемы можно отключить хранение учетных данных между сеансами, выполнив следующую команду. Однако после внесения этого изменения необходимо запускать Connect-AzAccount при каждом запуске нового сеанса PowerShell.

Disable-AzContextAutosave

Подключение для этого сайта не является безопасным

Если браузер по умолчанию — Microsoft Edge, при попытке входа в Azure в интерактивном Connect-AzAccountрежиме может возникнуть следующая ошибка: "Подключение для этого сайта не безопасно." Чтобы устранить эту проблему, посетите edge://net-internals/#hsts в Microsoft Edge. Добавьте localhost в разделе "Удалить политику безопасности домена" и щелкните Удалить.

Ошибка связанная с IdentifierUri проверенного домена для главного объекта службы

Ошибка: Значения свойства identifierUris должны использовать проверенный домен организации или его поддомен отображается при выполнении New-AzADServicePrincipal или New-AzADApplication.

Из-за значительного изменения в Microsoft Entra, требующего URI AppId в приложениях одноарендаторного типа для использования по умолчанию схемы или проверенных доменов, необходимо обновить модуль Az.Resources до версии 4.1.0 или более поздней, чтобы продолжить использование командлетов New-AzADServicePrincipal или New-AzADApplication.

Вы также можете обновить модуль Az PowerShell версии 6.0 или более поздней.

Временная шкала

Требование вступило в силу 15 октября 2021 года.

Затронутые версии

Следующие версии Azure PowerShell подвержены критическим изменениям AzureAD:

  • Модуль Az.Resources PowerShell версии 3.5.1-preview или более ранней.
  • Модуль Az PowerShell версии 5.9.0 или меньше.

Если после обновления у вас всё ещё возникают проблемы, вы можете открыть проблему .

Обходное решение

Если вы не можете обновить модули PowerShell, описанные ранее, можно выполнить следующие действия при создании субъекта-службы:

Другие проблемы

Если у вас возникла проблема с продуктом с Azure PowerShell, не указанная в этой статье или требуется дополнительная помощь, отправьте проблему наGitHub.