Búsqueda de sitios web

PowerShell: obtener y exportar usuarios de Azure AD


En esta guía, aprenderá cómo usar PowerShell para obtener usuarios de Azure AD, todas las propiedades de los usuarios y exportarlos a un archivo CSV.

Como administrador, es posible que deba revisar una lista de usuarios de Azure AD y sus propiedades relacionadas. Esto puede resultar útil para una auditoría de seguridad, revisar las configuraciones de la cuenta o usarse más adelante en un script.

Para obtener una lista de usuarios de Azure, puede utilizar el comando Get-MgUser de PowerShell. Con este comando, puede obtener todas las cuentas de usuario de Azure, buscar cuentas específicas y mostrar todas las propiedades de usuario o específicas.

Importante

Microsoft retirará Azure AD Graph y MSonline API en cualquier momento después del 30 de junio de 2023. Esto incluye el cmdlet Get-AzureADUser que se ha utilizado durante años para conseguir usuarios de Azure con PowerShell.

Estas API se están reemplazando por la API de Microsoft Graph. Para esta guía, usaré el cmdlet Get-MgUser recientemente compatible para obtener usuarios de Azure AD. Consulte los anuncios de cambios de Microsoft Entra para obtener más detalles.

Empecemos.

Requisitos

Para seguir esta guía necesitará lo siguiente:

  • PowerShell 5.1 o posterior instalado: cómo actualizar PowerShell
  • Net Framework 4.7.2 o posterior instalado
  • Módulo Microsoft Graph instalado: pasos a continuación

Cómo obtener propiedades de usuario de Azure AD con PowerShell

En este primer ejemplo, le mostraré cómo obtener una lista de todos los usuarios de Azure AD mediante el comando get-mguser.

Paso 1. Instale el SDK de Microsoft Graph PowerShell

Puede instalar el módulo Microsoft Graph para el usuario actual o para todos los usuarios.

Para instalar el módulo para el usuario actual, ejecute este comando.

Install-Module Microsoft.Graph -Scope CurrentUser

Para instalar el módulo para todos los usuarios en su computadora.

Install-Module Microsoft.Graph -Scope AllUsers

En este ejemplo, instalaré el módulo para el usuario actual.

Es posible que se le indique que está instalando módulos desde un repositorio que no es de confianza.

Escriba y para instalar desde el repositorio que no es de confianza.

Debería ver que se instalan varios paquetes. Cuando se complete, debería volver al indicador de PowerShell.

Para verificar que el módulo gráfico esté instalado, ejecute el siguiente comando.

find-module microsoft.graph

La instalación está completa.

Paso 2. Conéctese a Microsoft Graph usando PowerShell

Antes de poder conseguir usuarios de Azure con PowerShell, primero debe conectarse con el parámetro -scope y los permisos correctos. Consulte el artículo de Microsoft Referencia de permisos de Microsoft Graph para ver todos los permisos.

El siguiente comando le permitirá leer el conjunto completo de propiedades del perfil de usuario de Azure.

Connect-MgGraph -Scopes "User.Read.All"

Cuando ejecute el comando anterior, se le pedirá que inicie sesión.

Inicie sesión con su cuenta para completar la conexión a Microsoft Graph.

Paso 3. Utilice Get-MgUser para obtener usuarios de Azure AD

Si siguió los pasos 1 y 2, debería estar conectado a Microsoft Graph y no podrá ejecutar el cmdlet get-MgUser.

Para que todos los usuarios de Azure ejecuten este comando.

get-mguser -all

Este comando devolverá las propiedades Id. de usuario, DisplayName, Mail y UserPrincipalName.

Para obtener un único usuario de Azure, utilice el parámetro -UserID.

get-mguser -UserID "robert@activedirectorypro.com"

Ejemplos de Get-MgUser

A continuación se muestran algunos ejemplos más de cómo conseguir usuarios de Azure con el cmdlet Get-MGuser.

1. Busque usuarios específicos de Azure

En este ejemplo, usaré el parámetro -Filter para buscar usuarios con un nombre para mostrar específico.

 Get-MgUser -Filter "startsWith(DisplayName, 'Robert')"

2. Obtenga todos los usuarios de Azure habilitados

En este ejemplo, buscaré y solo obtendré los usuarios de Azure AD habilitados.

Get-MgUser -Filter 'accountEnabled eq true' -All -property AccountEnabled, DisplayName | select DisplayName, AccountEnabled

3. Mostrar todas las propiedades del usuario de Azure

Para mostrar todas las propiedades de un usuario, utilice el parámetro fl.

get-mguser -UserID "robert@activedirectorypro.com" | fl

Como puede ver en la captura de pantalla anterior, la mayoría de las propiedades del usuario están en blanco. Esto es así por diseño, la mayoría de los atributos requieren que especifique qué datos de atributo mostrar. Consulte el siguiente ejemplo para obtener más detalles.

4. Mostrar propiedades de usuario específicas

Para mostrar propiedades de usuario que no se muestran de forma predeterminada, utilice el parámetro de selección.

En este ejemplo, mostraré la fecha y hora de creación del usuario.

get-mguser -UserID "robert@activedirectorypro.com" -Property CreatedDateTime | select CreatedDateTime

Cuando utilice el parámetro de selección, deberá enumerar todas las propiedades que desee que se muestren. Aquí hay otro ejemplo que incluye el nombre para mostrar.

get-mguser -UserID "robert@activedirectorypro.com" -Property CreatedDateTime, displayname | select CreatedDateTime, displayname

Para ver qué atributos se muestran de forma predeterminada y cuáles requieren el uso de selección, consulte la tabla al final de esta publicación.

5. Buscar usuarios por departamento

En este ejemplo, buscaré todos los usuarios que están en el departamento "Contabilidad".

Get-MgUser -Filter "Department eq 'Accounting'"

Para mostrar solo las propiedades DisplayName y Department, utilice este comando.

Get-MgUser -Filter "Department eq 'Accounting'" -property displayname, department | select displayname, department

6. Ampliar las propiedades del usuario

Cuando muestre la lista completa de propiedades, notará que algunas dicen “Microsoft.Graph.PowerShell.Models“.

Algunas de estas propiedades se pueden ampliar fácilmente para ver los datos relacionados. El problema es que no todo se puede ampliar. Consulte el documento de tipo de recurso de usuario de Azure para obtener una lista completa de las propiedades que admiten la expansión.

Desplácese hacia abajo hasta Relaciones y busque las propiedades que dicen Soporta $expand.

En la captura de pantalla anterior, puede ver cómo se expanden los soportes de propiedad del administrador.

A continuación se muestra un ejemplo de cómo expandir la propiedad del administrador.

Get-MgUser -UserId anniesmith@activedirectorypro.com -ExpandProperty manager | Select @{Name = 'Manager'; Expression = {$_.Manager.AdditionalProperties.displayName}}

7. Exportar usuarios de Azure a CSV

Para exportar usuarios de Azure a CSV, use el comando export-csv

get-mguser -UserID "robert@activedirectorypro.com" | export-csv c:\it\azure-1.csv -NoTypeInformation

8. Obtener la fecha y hora de creación de todos los usuarios

En este ejemplo, mostraré el nombre para mostrar y la fecha y hora de creación de todos los usuarios.

get-mguser -all -Property displayName, CreatedDateTime | select displayName,CreatedDateTime

Lista de propiedades de usuario de Azure

A continuación se muestra una lista de todas las propiedades de usuario devueltas por el cmdlet Get-MgUser; hay 125 en total.

Se devuelve solo en $select significa que debe usar el parámetro de selección seguido del nombre de la propiedad para que muestre los datos del usuario. Consulte el ejemplo 4 para obtener más detalles.

aboutMe

Verdadero

accountEnabled

Verdadero

Activities

N/A

ageGroup

Verdadero

AgreementAcceptances

N/A

AppRoleAssignments

N/A

assignedLicences

Verdadero

assignedPlans

Verdadero

Authentication

AuthorizationInfo

birthday

Verdadero

businessPhones

Falso: devuelve por defecto

Calendar

CalendarGroups

CalendarView

Calendars

Chats

city

Verdadero

companyName

Verdadero

consentProvidedForMinor

Verdadero

ContactFolders

Contacts

county

Verdadero

createdDateTime

Verdadero

CreatedObjects

creationType

Verdadero

deletedDateTime

Verdadero

department

Verdadero

DeviceEnrollmentLimit

DeviceManagementTroubleshootingEvents

DirectReports

displayName

Falso: devuelve por defecto

Drive

Drives

employeeHireDate

Verdadero

employeeLeaveDateTime

Falso: devuelve por defecto

employeeId

Verdadero

employeeOrgData

Verdadero

employeeType

Verdadero

Events

Extensions

externalUserState

Verdadero

externalUserStateChangeDateTime

Verdadero

faxNumber

Verdadero

FollowedSites

givenName

Falso: devuelve por defecto

hireDate

Verdadero

id

Falso: devuelve por defecto

identities

Verdadero

imAddresses

Verdadero

InferenceClassification

Insights

interests

Verdadero

isResourceAccount

N/A

jobTitle

Falso: devuelto por defecto

JoinedTeams

lastPasswordChangeDateTime

Verdadero

legalAgeGroupClassification

Verdadero

licenseAssignmentStates

Verdadero

LicenseDetails

mail

Falso: devuelto por defecto

MailFolders

mailboxSettings

Verdadero

mailNickname

Verdadero

ManagedAppRegistrations

ManagedDevices

Manager

MemberOf

Messages

mobilePhone

Falso: devuelto por defecto

mySite

Verdadero

mySiteOauth2PermissionGrants

officeLocation

Falso: devuelto por defecto

onPremisesDistinguishedName

Verdadero

onPremisesDomainName

Verdadero

onPremisesExtensionAttributes

Verdadero

onPremisesImmutableId

Verdadero

onPremisesLastSyncDateTime

Verdadero

onPremisesProvisioningErrors

Verdadero

onPremisesSamAccountName

Verdadero

onPremisesSecurityIdentifier

Verdadero

onPremisesSyncEnabled

Verdadero

onPremisesUserPrincipalName

Verdadero

Onenote

OnlineMeetings

otherMails

Verdadero

Outlook

OwnedDevices

OwnedObjects

passwordPolicies

Verdadero

passwordProfile

Verdadero

pastProjects

Verdadero

People

Photo

Photos

Planner

postalCode

Verdadero

preferredDataLocation

N/A

preferredLanguage

Falso: devuelto por defecto

preferredName

Verdadero

Presence

provisionedPlans

Verdadero

proxyAddresses

Verdadero

RegisteredDevices

responsibilities

Verdadero

schools

Verdadero

ScopedRoleMemberOf

securityIdentifier

Falso: devuelto por defecto

Settings

showInAddressList

N/A

signInSessionsValidFromDateTime

Verdadero

skills

Verdadero

state

Verdadero

streetAddress

Verdadero

surname

Falso: devuelto por defecto

Teamwork

Todo

TransitiveMemberOf

usageLocation

Verdadero

userPrincipalName

Falso: devuelto por defecto

userType

Verdadero

AdditionalProperties

Resumen

En esta guía, expliqué cómo hacer que los usuarios de Azure AD utilicen PowerShell. Debido a que Microsoft retiró el cmdlet Get-AzureADUser, me concentré en usar los comandos Get-MgUser PowerShell recientemente compatibles.

En mi opinión, Microsoft ha hecho que conseguir usuarios de Azure sea más complicado de lo que debería ser. Para obtener todas las propiedades del usuario, debe usar la opción de expandir y buscar los comandos relacionados para expandir ciertas propiedades. Quizás haya una buena razón para esto, no lo sé.

Además, poner fin al soporte y reemplazar los comandos hace que la situación sea aún más frustrante. Lástima que MS no mantuvo los cmdlets de Azure simples como los comandos get-aduser de PowerShell para ADDS locales.

Recursos

  • Propiedades de usuario de Azure AD
  • Referencia de permisos de Microsoft Graph

Artículos relacionados