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

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

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

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

Get-AzResource -Name 'DoesNotExist' -Debug

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

$DebugPreference = 'Continue'

Установка

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

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

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

В Windows PowerShell 5.1 нельзя одновременно установить модули AzureRM и Az PowerShell.

В сценарии, в котором необходимо установить модуль 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'.

Это сообщение отображается, если в одной системе Windows установлены оба модуля Az и AzureRM PowerShell, которые указаны в переменной $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 субъекта-службы

Ошибка Значения свойства IdentifierUri должны использовать проверенный домен организации либо ее поддомен отображается при выполнении 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:

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

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

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

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

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

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