Solución de problemas del módulo Az PowerShell

Habilitación del registro de depuración

Uno de los primeros pasos que debe seguir para solucionar un problema con el módulo Az de Azure PowerShell es habilitar el registro de depuración.

Para habilitar el registro de depuración por comando, especifique el parámetro Debug.

Get-AzResource -Name 'DoesNotExist' -Debug

Para habilitar el registro de depuración para toda una sesión de PowerShell, establezca el valor de la variable DebugPreference en Continue.

$DebugPreference = 'Continue'

Instalación

Esta sección contiene una lista de soluciones a problemas comunes al instalar el módulo Az de Azure PowerShell.

Coexistencia de Az y AzureRM

Advertencia

No se pueden tener los módulos AzureRM y Az PowerShell instalados al mismo tiempo en Windows PowerShell 5.1.

En un escenario en el que necesite instalar tanto el módulo AzureRM como Az PowerShell en el mismo sistema Windows:

  • AzureRM solo debe instalarse en el ámbito de usuario actual de Windows PowerShell 5.1.
  • Instale el módulo Az PowerShell en PowerShell 7.2 o una versión posterior.

Advertencia

El módulo AzureRM PowerShell ha quedado oficialmente obsoleto a partir del 29 de febrero de 2024. Se recomienda a los usuarios migrar de AzureRM al módulo Az PowerShell para seguir recibiendo soporte técnico y actualizaciones.

Aunque el módulo AzureRM puede seguir funcionando, ya no recibirá mantenimiento ni soporte técnico, lo que significa que su uso continuado queda a discreción y riesgo del usuario. Consulte nuestros recursos de migración para ver una guía sobre la transición al módulo Az.

Visual Studio

Las versiones anteriores de Visual Studio pueden instalar Azure PowerShell como parte de la carga de trabajo de desarrollo de Azure, que instala el módulo AzureRM. Azure PowerShell puede quitarse con el instalador de Visual Studio o con la opción "Desinstalar" de Aplicaciones y características. Si ya ha instalado PowerShell 7.x, es posible que tenga que instalar manualmente el módulo Az de PowerShell.

El servidor proxy bloquea la conexión

Si se producen errores en Install-Module que indican que la Galería de PowerShell es inaccesible, es posible que esté detrás de un proxy. Sistemas operativos diferentes tendrán requisitos diferentes para configurar un servidor proxy de todo el sistema. Póngase en contacto con el administrador del sistema para la configuración del proxy y para saber cómo configurarlos en su entorno.

PowerShell no puede configurarse para usar este proxy automáticamente. Con PowerShell 5.1 y versiones posteriores, use los siguientes comandos para configurar la sesión de PowerShell para que use un servidor proxy:

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

Si las credenciales del sistema operativo están configuradas correctamente, esta configuración enruta las solicitudes de PowerShell a través del proxy. Para que esta configuración se conserve entre sesiones, agregue los comandos a un perfil de PowerShell.

Para instalar el paquete, el servidor proxy debe permitir conexiones HTTPS a www.powershellgallery.com.

Referencia a objeto no establecida como instancia de un objeto

El mensaje "Referencia a objeto no establecida como instancia de un objeto" significa que se está haciendo referencia a un objeto cuyo valor es NULL o a un recurso de Azure que no existe o para el que no se tiene permiso de acceso.

$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.

Puede usar el cmdlet Get-AzResource para comprobar que existe el recurso de Azure especificado.

Get-AzResource -ResourceId $resourceId

Problemas de permisos con cmdlets de AzAD

El módulo Az PowerShell usa Microsoft Graph API. La administración de recursos en Azure con el módulo Az PowerShell necesita los mismos permisos que la realización de misma tarea desde Azure Portal o cualquier otra herramienta de línea de comandos de Azure. Para obtener más información sobre los permisos, consulte la referencia de permisos de Microsoft Graph.

Parámetros de consulta de Microsoft Graph

Los cmdlets de AzAd en Az.Resources ahora admiten parámetros de consulta y parámetros de consulta de búsqueda. Para más información sobre la sintaxis, consulte los vínculos a los que se ha hecho referencia anteriormente.

Get-AzAdGroupMember no devuelve entidades de servicio

Debido a las limitaciones en la versión actual de Graph API, Get-AzAdGroupMember no devuelve entidades de servicio en Az 7.x. Como solución alternativa, se puede usar Invoke-AzRestMethod con la versión beta de Microsoft Graph API.

En el ejemplo siguiente se requiere el módulo Az PowerShell. Reemplace myGroupName en la primera línea por el nombre del grupo.

$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'}}

Comando encontrado pero no se pudo cargar

PowerShell devuelve el siguiente mensaje cuando intenta ejecutar cualquiera de los comandos de 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'.

Este mensaje se produce cuando tiene los módulos Az y AzureRM de PowerShell instalados en el mismo sistema basado en Windows y existen en $env:PSModulePath para la misma versión de PowerShell.

Importante

Cuando AzureRM está instalado en el ámbito AllUsers de Windows PowerShell, se instala en una ubicación que forma parte de $env:PSModulePath para PowerShell 7. Esto no es compatible debido a conflictos entre los módulos AzureRM y Az PowerShell.

Tanto Az como AzureRM pueden coexistir en el mismo sistema Windows, pero solo si AzureRM está instalado en el ámbito CurrentUser de Windows PowerShell y Az está instalado en PowerShell 7. Para obtener más información, consulte Instalación del módulo Az PowerShell.

Advertencia

El módulo AzureRM PowerShell ha quedado oficialmente obsoleto a partir del 29 de febrero de 2024. Se recomienda a los usuarios migrar de AzureRM al módulo Az PowerShell para seguir recibiendo soporte técnico y actualizaciones.

Aunque el módulo AzureRM puede seguir funcionando, ya no recibirá mantenimiento ni soporte técnico, lo que significa que su uso continuado queda a discreción y riesgo del usuario. Consulte nuestros recursos de migración para ver una guía sobre la transición al módulo Az.

En MacOS, se devuelve un error cuando se produce un error en la autorización de KeyChain

Al ejecutar Azure PowerShell en MacOS, es posible que aparezca un mensaje de error al intentar iniciar sesión en su cuenta de Azure desde una sesión de PowerShell.

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

Otra solución para este problema es deshabilitar el almacenamiento de credenciales entre sesiones ejecutando el siguiente comando. Sin embargo, después de realizar este cambio, tendrá que ejecutar Connect-AzAccount cada vez que inicie una nueva sesión de PowerShell.

Disable-AzContextAutosave

La conexión de este sitio no es segura

Cuando el explorador predeterminado es Microsoft Edge, es posible que encuentre el siguiente error al intentar iniciar sesión en Azure de forma interactiva con Connect-AzAccount: "La conexión de este sitio no es segura." Para resolver este problema, visite edge://net-internals/#hsts en Microsoft Edge. Agregue localhost en "Eliminar directiva de seguridad de dominio" y haga clic en Eliminar.

Erro de dominio comprobado de entidad de servicio

Error: los valores de la propiedad IdentifierUris deben usar un dominio comprobado de la organización o su subdominio se muestra al ejecutar New-AzADServicePrincipal o New-AzADApplication.

Debido al cambio importante de Microsoft Entra que requiere el identificador Uri de AppId en aplicaciones de inquilino único para requerir el uso de esquemas predeterminados o dominios comprobados es preciso actualizar el módulo Az.Resources a la versión 4.1.0, o cualquier versión posterior, para seguir usando New-AzADServicePrincipal o los cmdlets de New-AzADApplication.

También puede actualizar a la versión 6.0, o cualquier versión posterior, del módulo Az PowerShell.

Escala de tiempo

El requisito entró en vigor el 15 de octubre de 2021.

Versiones afectadas

Las siguientes versiones de Azure PowerShell se verán afectadas por el cambio importante de AzureAD:

  • Módulo Az.Resources de PowerShell, versión 3.5.1-preview o inferior.
  • Módulo Azure PowerShell, versión 5.9.0 o inferior.

Si los problemas no desaparecen tras la actualización, abra una incidencia.

Solución alternativa

Si no puede actualizar a los módulos de PowerShell descritos anteriormente, puede seguir estos pasos al crear una entidad de servicio:

Otros problemas

Si experimenta una incidencia con el producto Azure PowerShell que no aparece en este artículo o necesita más ayuda, registre una incidencia en GitHub.