Compartir a través de


Solución de problemas del módulo Az PowerShell

Habilitar el registro de depuración

Uno de los primeros pasos que debe seguir para solucionar un problema con el módulo Az de 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 la sesión completa de PowerShell, estableces el valor de la variable DebugPreference en Continue.

$DebugPreference = 'Continue'

Problema conocido: error al instalar módulos de Az desde MAR

Al instalar determinados módulos de Az PowerShell desde el Registro de artefactos de Microsoft (MAR) mediante PSResourceGet, puede producirse un error como:

Install-PSResource: Package(s) 'Az.Keyvault' could not be installed from repository 'MAR'.

Nota:

Como solución alternativa temporal, instale el módulo desde otro repositorio, como la Galería de PowerShell, hasta que se resuelva el problema.

Para obtener más información, consulte Bugfix for compare file path name (Corrección de errores para comparar el nombre de la ruta de acceso del archivo) para determinar la coincidencia exacta.

Solución de problemas de autenticación multifactor (MFA)

Errores de inicio de sesión interactivos

Si se producen errores al ejecutar cmdlets de Azure PowerShell que crean, modifican o eliminan recursos, el problema podría deberse a una directiva de acceso condicional de Id. de Microsoft Entra que requiere autenticación multifactor (MFA).

Estos errores suelen producirse cuando la directiva requiere MFA, pero no se aplica durante el inicio de sesión.

La autenticación de SharedTokenCacheCredential no está disponible.

Es posible que vea este error al usar:

  • Az Módulo de PowerShell versión 14.2.0 o anterior
  • Módulo Az.Accounts de PowerShell 5.1.1 o versiones anteriores
SharedTokenCacheCredential authentication unavailable. Token acquisition failed for user
someone@contoso.com. Ensure that you have authenticated with a developer tool that supports Azure
single sign on.

Actualice a las siguientes versiones o posteriores para recibir mensajes de error y detalles de directiva más informativos:

  • Az Módulo de PowerShell: versión 14.3.0 o posterior
  • Módulo Az.Accounts : versión 5.2.0 o posterior

El recurso no está permitido por la política

Este error se produce en versiones más recientes del módulo (Az 14.3.0+ y Az.Accounts 5.2.0+), donde el acceso condicional requiere MFA para operaciones específicas.

Resource was disallowed by policy. Users must use MFA for Create operation.
Users must authenticate with multi-factor authentication to create or update resources.
Run the cmdlet below to authenticate interactively; additional parameters may be added as needed.
Connect-AzAccount -Tenant (Get-AzContext).Tenant.Id -ClaimsChallenge "<claims-challenge-token>"

Opciones de resolución

  • Pida al administrador de Azure que aplique MFA al iniciar sesión. Esto permite que la sesión cumpla los requisitos de acceso condicional sin pasos adicionales.

  • Si la aplicación de la autenticación multifactor (MFA) en el inicio de sesión no es posible, use el parámetro ClaimsChallenge para autenticarse interactivamente.

    Connect-AzAccount -Tenant (Get-AzContext).Tenant.Id -ClaimsChallenge "<claims-challenge-token>"
    

Para más información, consulte Planeamiento de la autenticación multifactor obligatoria para Azure y otros portales de administración.

Error de ROPC: debido a un cambio de configuración realizado por el administrador

Use el flujo de credenciales de contraseña del propietario del recurso (ROPC) cuando inicie sesión en Azure mediante una contraseña. Este método de autenticación no admite MFA. Este es un ejemplo:

Connect-AzAccount -Credential $Credential

Si la cuenta de usuario requiere MFA, el comando produce el siguiente error:

Connect-AzAccount : UsernamePasswordCredential authentication failed: Response status code does not
indicate success: 400 (BadRequest). See the troubleshooting guide for more information
https://aka.ms/azsdk/net/identity/usernamepasswordcredential/troubleshoot

Solución: Use un método de autenticación compatible con MFA.

Advertencia entre inquilinos: error de autenticación en el arrendatario

Si tiene acceso a varios inquilinos y uno de ellos requiere MFA, Azure PowerShell puede mostrar la advertencia siguiente:

WARNING: Unable to acquire token for tenant '00000000-0000-0000-0000-000000000000' with error
'Authentication failed against tenant 00000000-0000-0000-0000-000000000000. User interaction is
required. This may be due to the conditional access policy settings such as multi-factor
authentication (MFA). If you need to access subscriptions in that tenant, please rerun
'Connect-AzAccount' with additional parameter '-TenantId 00000000-0000-0000-0000-000000000000.'

Azure PowerShell intenta iniciar sesión con el primer inquilino encontrado durante el inicio de sesión. Si ese inquilino aplica MFA, es posible que se produzca un error en la autenticación. Para evitar este problema, especifique explícitamente el inquilino de destino mediante el parámetro TenantId :

Connect-AzAccount -TenantId 00000000-0000-0000-0000-000000000000

Esto garantiza que la autenticación se intente en el inquilino correcto, lo que reduce la probabilidad de errores relacionados con MFA.

Mensajes de anuncio en escenarios de automatización

Al conectarse a Azure con Azure PowerShell, los mensajes de anuncio se muestran mediante el flujo de información de PowerShell para evitar que modifiquen la salida basada en objetos devueltos. Aunque hemos realizado todos los esfuerzos para asegurarnos de que los mensajes de anuncio no afectan a su experiencia, hay algunos escenarios de automatización en los que podrían afectar al uso. Si experimenta problemas, se recomienda suprimir el flujo de información en esos escenarios:

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

Administrador de cuentas web (WAM)

  • El método de inicio de sesión interactivo no puede abrir una ventana para WAM y devuelve el error: Autenticación cancelada por el usuario.
  • Los cmdlets de Azure PowerShell no se pueden ejecutar después de iniciar sesión con un nombre de usuario y una contraseña o código de dispositivo.
  • La ventana emergente WAM no muestra la opción Cuenta profesional y educativa .
  • El método de inicio de sesión interactivo no puede abrir una ventana WAM en la consola de Windows PowerShell ISE.

La solución alternativa para estos problemas es deshabilitar WAM:

Update-AzConfig -EnableLoginByWam $false
  • La ventana emergente de WAM para seleccionar una cuenta no es fácil de encontrar. Minimice otras ventanas para ubicar la ventana emergente.

Installation

Esta sección contiene una lista de soluciones a problemas comunes al instalar el módulo Az 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 necesita instalar el módulo AzureRM y 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 de PowerShell en PowerShell 7.2 o 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 se puede quitar mediante el instalador de Visual Studio o mediante "Desinstalar" en 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.

Es posible que PowerShell no esté configurado 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 persista entre sesiones, agregue los comandos al perfil de PowerShell.

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

La referencia del objeto no está asignada a una instancia de un objeto.

El mensaje "referencia de objeto no establecido en una instancia de un objeto" significa que hace referencia a un objeto que es null o a un recurso de Azure que no existe o que no tiene permisos para acceder.

$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 Get-AzResource cmdlet para comprobar que existe el recurso de Azure especificado.

Get-AzResource -ResourceId $resourceId

Problemas de permisos con los cmdlets de Azure Active Directory

El módulo Az PowerShell usa Microsoft Graph API. La administración o administración de recursos en Azure con el módulo Az PowerShell requiere los mismos permisos que realizar la tarea idéntica desde Azure Portal o cualquier otra herramienta de línea de comandos de Azure. Para obtener preguntas específicas 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 obtener más información sobre la sintaxis, consulte los vínculos a los que se hace 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, Invoke-AzRestMethod se puede usar 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 instalados los módulos Az y AzureRM PowerShell en el mismo sistema basado en Windows y existen en la $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 CurrentUser ámbito de Windows PowerShell y Az 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 encuentre 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, debe ejecutarse 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 posterior del módulo de 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 ven afectadas por el cambio importante de AzureAD:

  • Módulo Az.Resources de PowerShell, versión 3.5.1-preview o inferior.
  • Versión 5.9.0 o anterior del módulo Az PowerShell.

Si sigue teniendo problemas después de la actualización, no dude en abrir un problema.

Solución

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

Otros problemas

Si experimenta un problema de producto con Azure PowerShell no aparece en este artículo o necesita más ayuda, presente un problema en GitHub.