Búsqueda de sitios web

¿Cómo utilizar Get-MgUser en Microsoft Graph PowerShell?


El comando Get-MgUser en Microsoft Graph PowerShell está diseñado específicamente para recuperar información sobre los usuarios de su inquilino de Microsoft 365 que están almacenados en Azure Active Directory (Microsoft Entra). Administrar usuarios en Azure AD es una tarea crucial para los administradores. Por lo tanto, comprender el cmdlet Get-MgUser es esencial para administrar los datos del usuario dentro de Microsoft Graph a través de PowerShell. Este comando lo ayuda a recuperar propiedades y relaciones de usuario de manera eficiente, ofreciendo varios parámetros como filter, property y search para ajustar la recuperación de datos. procesos. En este artículo completo, lo guiaré a través del proceso de uso de Get-MgUser para recuperar información del usuario de Azure AD, desde el uso básico hasta el avanzado, y le brindaré sugerencias.

Comprender el comando Get-MgUser

Para comenzar nuestro viaje al mundo de Get-MgUser, primero comprendamos qué hace este comando. Get-MgUser es un cmdlet de PowerShell que le permite recuperar información sobre los usuarios en Microsoft 365. Ya sea que necesite buscar propiedades de usuario específicas, filtrar usuarios según ciertos criterios o recuperar licencias, Get-MgUser lo tiene cubierto.

Para comenzar con Get-MgUser, debe conectarse a su entorno de Microsoft 365 desde PowerShell a través de Microsoft Graph, utilizando las credenciales adecuadas. Una vez conectado, puede ejecutar el comando Get-MgUser seguido de varios parámetros para adaptar los resultados a sus necesidades específicas. Ya sea principiante o un usuario experimentado de PowerShell, este artículo le ayudará a comprender cómo utilizar Get-MgUser de forma eficaz.

Instalación del módulo Microsoft Graph PowerShell

Antes de sumergirse en el mundo de Microsoft Graph con PowerShell, instalar el módulo Microsoft Graph PowerShell es un primer paso fundamental. Este módulo, un contenedor completo para Microsoft Graph API, reemplaza el módulo anterior de Azure AD y proporciona una forma simplificada y eficiente de interactuar con todos los servicios de Microsoft. Aquí hay una guía sencilla para comenzar:

Para verificar si el módulo Microsoft Graph ya está instalado, use el cmdlet Get-InstalledModule:


Get-InstalledModule Microsoft.Graph

Requisitos previos de instalación

  • Asegúrese de tener la última versión de PowerShell instalada en su sistema. El módulo Microsoft Graph PowerShell es compatible con Windows PowerShell 5.1 y PowerShell 7.
  • Verifique que tenga acceso de administrador a Azure AD (Microsoft Entra). Esto es crucial para ejecutar comandos Get-MgUser sin enfrentar errores de "privilegios insuficientes".

Pasos de instalación

Para instalar el módulo Microsoft Graph PowerShell para Windows, siga estos pasos:

  • Abra la consola PowerShell o la terminal de Windows como administrador.
  • Ejecute el comando: Install-Module Microsoft.Graph -Scope CurrentUser. Esto instala el módulo para el usuario actual, evitando cambios en todo el sistema.
  • Si se le solicita, acepte el repositorio que no es de confianza para continuar con la instalación.

Este comando descargará e instalará la última versión del módulo Microsoft Graph PowerShell desde la Galería de PowerShell.

Versión Beta opcional: para acceder a las funciones y cmdlets más recientes, la versión beta se puede instalar usando: Install-Module Microsoft.Graph.Beta -Scope CurrentUser.

El módulo Microsoft Graph PowerShell facilita un enfoque unificado para administrar los servicios de la nube de Microsoft y admite métodos de autenticación modernos en múltiples plataformas. Su naturaleza de código abierto y sus actualizaciones periódicas garantizan la compatibilidad con los últimos cambios de Graph API, lo que la convierte en una herramienta esencial tanto para administradores como para desarrolladores.

Conexión a Microsoft Graph con PowerShell

Conectarse a Microsoft Graph con PowerShell es un proceso sencillo, pero requiere especial atención a los permisos y alcances para garantizar que tenga el acceso necesario para realizar las tareas previstas. A continuación se ofrece una guía paso a paso para establecer una conexión adaptada a los métodos de acceso delegado y solo a la aplicación.

Conexión de acceso delegado

  1. Determine los permisos necesarios: utilice los cmdlets Find-MgGraphPermission o Find-MgGraphCommand para identificar los permisos necesarios para sus tareas. Los ámbitos comunes para la administración de usuarios incluyen User.Read.All para leer perfiles de usuario y AuditLog.Read.All para acceder a registros de auditoría.
  2. Conéctese a Microsoft Graph: ejecute Connect-MgGraph -Scopes "User.Read.All", "AuditLog.Read.All" en PowerShell.
  3. Verificar conexión: ejecute un comando de prueba Get-MgUser para confirmar la conexión exitosa y el acceso a las cuentas de usuario en su inquilino.
  4. Si es la primera vez que se conecta, aparecerá una ventana de solicitud de permiso. Otorgue el consentimiento del administrador para continuar.

Conexión de acceso solo para aplicaciones mediante ID de aplicación de Azure

Para conectarse a Microsoft Graph mediante una conexión de acceso solo para aplicaciones, debe registrar la aplicación en el centro de administración de Microsoft Entra y asociar un secreto de cliente (contraseña de la aplicación), un certificado o una credencial de identidad federada. Y luego configure los permisos de la aplicación Microsoft Graph en la aplicación. Más aquí: ¿Cómo conectarse a Microsoft Graph usando PowerShell?

Con el acceso solo a la aplicación, puede realizar operaciones sin que un usuario haya iniciado sesión, lo cual es ideal para scripts automatizados y servicios backend.

Consejos adicionales:

  • Cambiar de versión de API: para acceder a las últimas funciones o comandos beta, cambie a la versión Beta usando Select-MgProfile -Name Beta.
  • Ámbitos de permisos: verifique siempre los alcances de permisos requeridos (User.Read.All, Group.ReadWrite.All) para sus operaciones. Estos permisos normalmente requieren una cuenta con funciones de Administrador de aplicaciones, Administrador de aplicaciones en la nube o Administrador global.
  • Desconexión: recuerde desconectar su sesión una vez completadas las tareas, utilizando Disconnect-MgGraph para mantener la seguridad.

Si sigue estos pasos y sugerencias, podrá conectarse eficazmente a Microsoft Graph con PowerShell, lo que le permitirá administrar los servicios y datos de Microsoft 365 con precisión y eficiencia. Ya sea que esté utilizando acceso delegado para operaciones específicas de un usuario o acceso solo a aplicaciones para tareas más amplias basadas en aplicaciones, comprender el proceso de conexión y los permisos necesarios es clave para aprovechar todo el poder de Microsoft Graph.

Ahora que tenemos un conocimiento básico de Get-MgUser, examinemos algunos ejemplos prácticos de cómo usar este comando para recuperar información del usuario de manera eficiente.

Recuperar detalles de un único usuario con el cmdlet Get-MgUser

Recuperar detalles de un único usuario en Microsoft Graph mediante el cmdlet Get-MgUser es un proceso sencillo que se puede personalizar para extraer información de usuario específica según sus requisitos. A continuación se explica cómo puede utilizar este cmdlet de manera eficiente para recopilar información detallada sobre un usuario individual:

Recuperación básica de usuarios

Para obtener información básica sobre un solo usuario, puede utilizar el parámetro -UserId con el ID del usuario o UserPrincipalName. Por ejemplo:


Get-MgUser -UserId john.doe@Crescent.com

Este comando obtiene detalles básicos del usuario, como su ID, nombre para mostrar, dirección de correo electrónico y nombre principal del usuario. También puede pasar el ID de objeto de un usuario a este cmdlet.

Ampliar la información del usuario

Puede utilizar el parámetro -ExpandProperty para obtener información más detallada, incluidas relaciones como el administrador del usuario o sus subordinados directos. Por ejemplo, para recuperar los detalles del administrador de un usuario, ejecute:


Get-MgUser -UserId "michael.brown@Crescent.com" -ExpandProperty Manager | Select-Object @{Name = 'Manager'; Expression = {$_.Manager.AdditionalProperties.mail}}

De manera similar, para obtener una lista de los subordinados directos del usuario:


Get-MgUser -UserId AdeleV@Crescent.com -ExpandProperty directReports | Select-Object @{Name = 'DirectReports'; Expression = {$_.directReports.AdditionalProperties.mail}}

Personalización de la recuperación de datos

El cmdlet Get-MgUser ofrece flexibilidad en términos de los datos que puede recuperar. Al utilizar parámetros como -Property y -Filter, puede adaptar la salida a sus necesidades específicas.

Seleccione propiedades específicas:

De forma predeterminada, Get-MgUser recupera un conjunto limitado de propiedades para cada usuario. Sin embargo, puede haber casos en los que necesite acceso a propiedades adicionales. Afortunadamente, Get-MgUser le permite ampliar los resultados para incluir todas las propiedades disponibles. Para recuperar todas las propiedades de cada usuario, puede utilizar el parámetro -Property. Por ejemplo:

Para obtener la ubicación del departamento y la oficina del usuario, usaría:


Get-MgUser -UserId Steve@Crescent.com -Property DisplayName, mail,department | Select-Object DisplayName, Mail, Department

Para obtener todas las propiedades disponibles del objeto de usuario, puede utilizar el cmdlet get-member:


Get-Mguser | Get-Member -MemberType Property

Este comando devolverá todas las propiedades disponibles para cada usuario en su entorno de Microsoft 365.

Filtrar usuarios: el parámetro -Filter le permite encontrar usuarios según criterios específicos como departamento o puesto de trabajo. Aunque esto se usa más comúnmente para enumerar varios usuarios, también puede resultar útil cuando conoce parte de la información del usuario. Por ejemplo, para buscar un usuario de un departamento específico:


Get-MgUser -Filter "department eq 'Sales'" -All

Selección de propiedades específicas: es posible que no siempre necesite toda la información proporcionada de forma predeterminada. Para recuperar solo propiedades específicas como Nombre para mostrar y correo, utilice el cmdlet Select-Object. Por ejemplo:


Get-MgUser | Select-Object DisplayName, Mail

Este comando filtra la salida para incluir solo el nombre para mostrar y la dirección de correo electrónico del usuario.

Los comandos y parámetros del cmdlet Get-MgUser no solo facilitan la recuperación de una amplia gama de información de usuario de Azure Active Directory (Azure AD), sino que también subrayan la versatilidad del cmdlet para manejar diversas tareas de administración de usuarios. Al comprender y emplear estas opciones, puede administrar de manera eficiente los datos de los usuarios dentro de su entorno de Microsoft 365, asegurando tener acceso a la información más relevante y actualizada según sea necesario.

Obtenga una lista de todos los usuarios de Microsoft 365

Recuperar información sobre todos los usuarios dentro de su Microsoft Entra ID y el entorno de Microsoft 365 es una tarea crítica para los administradores. El cmdlet Get-MgUser, un componente del SDK de Microsoft Graph PowerShell, simplifica este proceso al ofrecer una variedad de parámetros diseñados para una administración integral de usuarios. A continuación se explica cómo aprovechar Get-MgUser para recuperar la información de todos los usuarios de forma eficaz:

Comando básico para recuperar todos los usuarios

De forma predeterminada, el cmdlet Get-MgUser solo devuelve los primeros 100 resultados. Para enumerar todos los usuarios de Azure Active Directory, utilice el parámetro -All con el cmdlet Get-MgUser. Este comando paginará a través de todos los usuarios, asegurando que recupere todas las cuentas:


Get-MgUser -All

Este comando devolverá una lista de todos los usuarios de su inquilino, junto con sus propiedades básicas.

Para obtener una vista más detallada, que incluya ID, DisplayName, Mail y UserPrincipalName, puede formatear la salida:


Get-MgUser -All | Format-List ID, DisplayName, Mail, UserPrincipalName

Filtrar y ordenar usuarios según propiedades

Si bien las opciones de filtrado básicas de Get-MgUser son potentes, puede haber escenarios en los que necesite capacidades de filtrado más avanzadas. Afortunadamente, Get-MgUser ofrece parámetros adicionales para ayudarlo a refinar sus consultas. Puede aplicar el parámetro -Filter con operadores como eq (igual), ne (no igual), gt (mayor que), ge (mayor o igual), lt (menor que) y le (menor o igual) y comienza con para limitar su lista de usuarios según criterios específicos.

Supongamos que solo desea recuperar un subconjunto específico de usuarios en función de determinadas propiedades, como el departamento al que pertenecen. Puede utilizar el parámetro -Filter para lograr esto. Por ejemplo:


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

Este comando devolverá todos los usuarios cuyo departamento esté configurado en "Marketing".

Veamos algunos ejemplos más de cómo filtrar usuarios de Azure Active Directory:

Para enumerar todos los usuarios de la nube, excepto los invitados, puede aplicar un filtro como:


Get-MgUser -Filter "UserType eq 'Member'" -All

Para recuperar usuarios sincronizados localmente y ordenarlos por nombre para mostrar:


Get-MgUser -Filter "OnPremisesSyncEnabled eq true" -All | Sort-Object DisplayName

Filtremos todos los usuarios creados en los últimos 30 días:


 Get-MgUser -Filter "CreatedDateTime ge $((Get-Date).AddDays(-30).ToString("s"))Z" -All

Puede combinar múltiples condiciones con operadores lógicos Y, O:


Get-MgUser -Filter "Country eq 'Canada' and Department eq 'Sales'"

Aquí hay otro ejemplo del uso del operador AND en consultas avanzadas:


Get-MgUser -Filter "(accountEnabled eq true) and (startswith(Department,'Sales'))"

También se admiten otros operadores de comparación StartsWith, EndsWith y NE:


Get-MgUser -Filter "startsWith(mail,'steve')" -All -ConsistencyLevel Eventual

Además de usar el parámetro Filtro, también puede usar el cmdlet Where-Object para filtrar perfiles de usuario (lo cual es menos eficiente, ¡por cierto!):


Get-MgUser -All | Where-Object {$_.DisplayName -like "*sam*"}

Puede crear búsquedas detalladas y específicas para extraer el subconjunto exacto de información de usuario que necesita del directorio. Esto es especialmente útil para generar informes, automatizar tareas de administración de usuarios o integrar con otros scripts y servicios.

Filtrado por nombre principal de usuario

Si desea filtrar usuarios según su UserPrincipalName, puede utilizar el parámetro -Filter junto con la propiedad UserPrincipalName. Por ejemplo:


Get-MgUser -Filter "UserPrincipalName eq 'john.doe@Crescent.com'"

Este comando devolverá al usuario con el UserPrincipalName especificado.

Filtrar usuarios por estado de cuenta

Para administrar de manera eficiente las cuentas de usuario dentro de su entorno de Microsoft 365, particularmente en términos del estado de la cuenta, el cmdlet Get-MgUser ofrece capacidades de filtrado sólidas. Así es como puede utilizar estas funciones para filtrar y recuperar estados de cuentas de usuario:

Recuperar el estado de la cuenta:

Comience incluyendo la propiedad AccountEnabled usando el parámetro -Property. Esta acción le permite ver si una cuenta está habilitada o deshabilitada.


Get-MgUser -all -Property Id, DisplayName, UserPrincipalName, AccountEnabled | Select-Object Id, DisplayName, UserPrincipalName, AccountEnabled

Filtrado según el estado de la cuenta:

El parámetro -Filter es fundamental cuando desea enumerar usuarios según el estado de su cuenta. Ya sea que esté buscando identificar cuentas habilitadas o deshabilitadas, este parámetro, combinado con la propiedad accountEnabled, lo hace sencillo. Por ejemplo, para recuperar sólo usuarios habilitados:


Get-MgUser -Filter "accountEnabled eq true" -All

Para enumerar usuarios discapacitados:


Get-MgUser -Filter "accountEnabled eq false"

Recuerde utilizar operadores como eq (igual), y, o y startswith para consultas más complejas. asegurando que la consulta de filtro esté entre comillas dobles y los valores de cadena entre comillas simples.

Para verificar el estado de la cuenta de un usuario específico, use:


Get-MgUser -UserId "Steve@Crescent.com" -Property DisplayName, UserPrincipalName, AccountEnabled | Select-Object DisplayName, UserPrincipalName, AccountEnabled

Buscando en Azure AD con el parámetro -Search de Get-MgUser

El parámetro -Search puede resultar particularmente útil para encontrar usuarios por palabras clave, mejorando la especificidad de sus consultas.

Para una búsqueda más matizada, el parámetro -Search se puede utilizar junto con la opción ConsistencyLevel eventual. Este enfoque es beneficioso cuando busca usuarios en función de propiedades específicas a las que no se puede acceder directamente a través del parámetro -Filter.


 Get-MgUser -Search "DisplayName:sam" -ConsistencyLevel Eventual

Al aprovechar estos comandos y parámetros, obtiene una comprensión y un control integrales sobre los estados de las cuentas de los usuarios dentro de su organización. Esta capacidad es esencial para auditorías de rutina, garantizar el cumplimiento y gestionar el acceso de los usuarios de forma eficaz.

Obtención de información del gerente

Para obtener información del administrador para los usuarios dentro de su entorno de Microsoft 365, aprovechando el cmdlet Get-MgUser, puede expandir la propiedad "Administrador". Este cmdlet le permite obtener los detalles del administrador de un usuario, incluido el nombre, el nombre para mostrar y la dirección de correo electrónico, lo que puede ser fundamental para la estructuración organizacional y el análisis del flujo de comunicación. A continuación se explica cómo utilizar este cmdlet de forma eficaz:

Utilice el parámetro -UserId para especificar el usuario. Por ejemplo:


Get-MgUser -UserId "Steve@Crescent.com" -ExpandProperty Manager | Select-Object @{Name = 'Manager'; Expression = { $_.Manager.AdditionalProperties.displayName} }

Este comando recupera los detalles del administrador asignados al usuario especificado por -UserId.

Recuperar administradores para todos los usuarios

Para obtener la información del administrador para todos los usuarios, puede encadenar comandos. Comience con Get-MgUser -All para enumerar todos los usuarios, luego canalice los resultados a Select-Object con una expresión personalizada para extraer los detalles del administrador. Por ejemplo:


Get-MgUser -All -ExpandProperty Manager | Select-Object Id, UserPrincipalName, @{Name = 'Manager'; Expression = { $_.Manager.AdditionalProperties.mail } }

Este comando enumera de manera eficiente a todos los usuarios junto con el correo electrónico de su administrador, lo que muestra el poder de PowerShell para manejar operaciones de datos masivos.

Al utilizar el script anterior, puede gestionar y analizar hábilmente las relaciones administrador-usuario dentro de su organización, mejorando tanto la supervisión como la eficiencia operativa.

Listado de usuarios con y sin licencia

Get-MgUser también le permite obtener licencias para usuarios en su entorno de Microsoft 365. Por ejemplo, si desea recuperar una lista de usuarios que tienen una licencia asignada, puede filtrar con una propiedad AssignedLicenses. He aquí un ejemplo:


Get-MgUser -Filter 'assignedLicenses/$count ne 0' -ConsistencyLevel eventual -CountVariable licensedUserCount -All -Property UserPrincipalName, DisplayName,AssignedLicenses | Format-Table -Property UserPrincipalName,DisplayName,AssignedLicenses

Identificar y administrar usuarios con y sin licencia dentro de su entorno de Microsoft 365 es un aspecto crítico de la administración. El cmdlet Get-MgUser ofrece potentes capacidades de filtrado para distinguir entre estos tipos de usuarios. A continuación se explica cómo enumerar a todos los usuarios sin licencia de forma eficaz:


Get-MgUser -Filter 'assignedLicenses/$count eq 0' -ConsistencyLevel eventual -CountVariable unlicensedUserCount -All

Esto se dirige a usuarios a los que no se les ha asignado ninguna licencia.

Obtener licencias asignadas a un usuario específico:

Para obtener detalles de licencia específicos de los usuarios, el cmdlet Get-MgUserLicenseDetail se puede utilizar con el ID del usuario para obtener información completa de asignación de licencia.


Get-MgUserLicenseDetail -UserId "steve@Crescent.com"

Al emplear estos comandos, los administradores pueden administrar de manera eficiente las licencias de usuario dentro de su entorno de Microsoft 365, asegurando que los recursos se asignen de manera adecuada y se cumplan los requisitos de cumplimiento. Este proceso ayuda en la auditoría y planificación de estrategias de optimización y adquisición de licencias.

Determinar la actividad de inicio de sesión del usuario

Determinar la actividad de inicio de sesión de un usuario es un aspecto fundamental para monitorear y proteger su entorno de Microsoft 365. El atributo SignInActivity, al que se puede acceder a través de la API Beta de Microsoft Graph, proporciona información valiosa sobre el último inicio de sesión interactivo exitoso en Azure AD. Así es como puede aprovechar este atributo usando PowerShell:

Cambiar a API Beta:

El atributo SignInActivity no está disponible en la API v1.0, por lo que es necesario cambiar a la versión Beta. Puede lograr esto utilizando el cmdlet "Select-MgProfile" que configura su sesión de PowerShell para usar la API Beta, lo que garantiza que tenga acceso a las funciones y atributos más recientes, incluido SignInActivity.

Recuperar actividad de inicio de sesión

Uso del cmdlet Get-MgUser: para recuperar SignInActivity para un usuario específico, el -UserId El parámetro se debe proporcionar con el GUID de Azure AD del usuario. El comando se parece a esto:


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

#Switch the Microsoft Graph profile to BETA
Select-MgProfile -Name "beta"

#Get the User
$User =  Get-MgUser -UserId "steve@crescent.com"

#Get the sign in Activity of the user
Get-MgUser -UserId $User.ID -Property SignInActivity | Select-Object -ExpandProperty SignInActivity

Acceder a propiedades adicionales:

Una vez que haya recuperado un objeto de usuario que incluya el atributo SignInActivity, se podrá acceder a la actividad de inicio de sesión a través de las propiedades adicionales. Este método permite obtener conocimientos más profundos sobre el comportamiento del usuario:


$UserSigninActivity = Get-MgUser -UserId $User.ID -Property SignInActivity,LastPasswordChangeDateTime

#Get the Signin Acvivity: LastSignInDateTime, LastNonInteractiveSignInDateTime
$UserSigninActivity.SignInActivity

#Get the past passwor change date
$UserSigninActivity.LastPasswordChangeDateTime

Es importante tener en cuenta que la propiedad LastSignInDateTime, que detalla la hora del último inicio de sesión exitoso, solo está disponible a través de la API Beta. La disponibilidad de este atributo ha sido constante desde que se resolvió el problema relacionado con su visualización el 3 de marzo de 2021.

Obtener la fecha del último inicio de sesión para todos los usuarios


Get-MgUser -All -Property Id, UserPrincipalName, DisplayName, SignInActivity | Select-Object Id, UserPrincipalName, DisplayName, @{Name = 'LastSignInDateTime'; Expression = { $_.SignInActivity.LastSignInDateTime }}, @{Name = 'LastNonInteractiveSignInDateTime'; Expression = { $_.SignInActivity.LastNonInteractiveSignInDateTime } } | Out-GridView -Title "Sign-in Logs"

Si sigue estos pasos, puede monitorear de manera efectiva las actividades de inicio de sesión de los usuarios dentro de su entorno de Microsoft 365. Este proceso no solo mejora la seguridad al permitir la identificación de patrones de inicio de sesión irregulares, sino que también ayuda en las tareas de cumplimiento y auditoría al proporcionar datos de acceso de usuario precisos y oportunos.

Exportar detalles de usuario a CSV

Exportar información del usuario a un archivo CSV es sencillo con el comando Export-CSV. Esta funcionalidad es invaluable para fines de informes o auditoría. Después de recuperar todos los usuarios con Get-MgUser -All, canalice la salida a Export-CSV:


Get-MgUser -All | Export-CSV -Path "AzureADUsers.csv"

Para incluir propiedades personalizadas o datos de extensión, utilice la opción de consulta OData $select para especificar propiedades adicionales antes de exportar:


Get-MgUser -All -Property displayName,mail,jobTitle | Select displayName,mail,jobTitle | Export-CSV -Path "CustomAzureADUsers.csv"

Estos pasos describen el proceso para administrar y exportar de manera eficiente la información del usuario desde Azure AD mediante el cmdlet Get-MgUser en PowerShell. Al utilizar el parámetro -All, junto con las opciones de filtrado y exportación, los administradores pueden supervisar de manera efectiva las cuentas de usuario dentro de su entorno de Microsoft 365.

Para agilizar el proceso de exportación de detalles de usuario a un archivo CSV, especialmente cuando se trata de grupos de usuarios específicos dentro de su entorno de Microsoft 365, la combinación de scripts de PowerShell mejora de manera efectiva sus capacidades de administración de datos. Aquí hay un enfoque estructurado para lograr esto:

  1. Combinación de scripts para exportación dirigida:

    • Comience utilizando el cmdlet Get-MgUser para obtener los detalles de usuario necesarios. Este cmdlet es versátil y le permite especificar el contexto (delegado o aplicación) y garantizar que tenga los permisos adecuados para la operación.
    • A continuación, aplique filtros para limitar los usuarios según criterios como puestos de trabajo y departamentos. Este paso es crucial para centrarse en los grupos de usuarios que cumplen con las condiciones especificadas.
  2. Exportar a CSV: una vez filtrados y compilados los datos del usuario deseado, el paso final consiste en exportar esta información a un archivo CSV. Utilice el cmdlet Export-CSV y especifique la ruta donde desea guardar el archivo CSV.

Get-MgUser -Filter "jobTitle eq 'Director' and department eq 'Operations'" -Property DisplayName, UserPrincipalName, JobTitle, Department, AssignedLicenses, LastPasswordChangeDateTime | Select-Object DisplayName, UserPrincipalName, JobTitle, Department, AssignedLicenses, LastPasswordChangeDateTime | Export-CSV -Path "FilteredUsers.csv" -NoTypeInformation

Este comando filtra eficazmente a los usuarios por puesto de trabajo y departamento, selecciona propiedades específicas para incluirlas en el resultado y exporta los datos a un archivo CSV llamado "FilteredUsers.csv".

Obtenga el indicador de contraseña que nunca caducará para todos los usuarios y exporte a un archivo CSV

Para obtener el indicador de contraseña que nunca caduca para todos los usuarios y exportarlo a un archivo CSV usando Microsoft Graph PowerShell, puede usar el siguiente script:

  1. Conéctese a Microsoft Graph mediante el cmdlet Connect-MgGraph y proporcione los ámbitos necesarios.
  2. Recupere a todos los usuarios mediante el cmdlet Get-MgUser y seleccione las propiedades DisplayName, UserPrincipalName y PasswordPolicies.
  3. Filtre los usuarios cuyas políticas de contraseñas contengan el valor DisablePasswordExpiration.
  4. Exporte los usuarios filtrados a un archivo CSV utilizando el cmdlet Export-Csv.

#Connect to Microsoft Graph
Connect-MgGraph -Scopes "User.Read.All"

#Get Password Never Expire flag for all users
$PasswordNeverExpire = Get-MgUser -All -Property DisplayName, UserPrincipalName, PasswordPolicies | Select-Object DisplayName, UserprincipalName, @{
    Name = "PasswordNeverExpires"; Expression = { $_.PasswordPolicies -contains "DisablePasswordExpiration"}
}

$PasswordNeverExpire
#Export the data to CSV file
$PasswordNeverExpire | Export-CSV -Path "C:\Temp\PasswordNeverExpire.csv" -NoTypeInformation

Si sigue este enfoque estructurado, puede administrar y exportar de manera eficiente información detallada del usuario desde su entorno de Microsoft 365, adaptada a sus requisitos específicos. Este proceso no solo ayuda en las auditorías organizacionales sino que también respalda estrategias proactivas de gestión de usuarios.

Solución de problemas comunes con Get-MgUser

Si bien Get-MgUser es una herramienta poderosa, es posible que encuentre algunos problemas comunes al usarla. Exploremos algunos de estos problemas y sus posibles soluciones.

Privilegios insuficientes para completar la operación.

Si recibe un mensaje de error que dice "Privilegios insuficientes para completar la operación", significa que la cuenta que está utilizando para ejecutar el comando Get-MgUser no tiene los permisos necesarios. Para resolver este problema, asegúrese de que la cuenta tenga los privilegios administrativos adecuados en su entorno de Microsoft 365. Los administradores deben otorgar los permisos adecuados (como User.Read.All para leer todos los perfiles de usuario) en el centro de administración de Azure AD en permisos API para el registro de la aplicación asociada con PowerShell.

Get-MgUser no se reconoce como el nombre de un cmdlet

Si encuentra un mensaje de error que dice "Get-MgUser no se reconoce como el nombre de un cmdlet", significa que el módulo PowerShell para Microsoft Graph no está instalado en su sistema. Para instalar el módulo, ejecute “Install-Module Microsoft.Graph”. Más información está aquí: instale el módulo Microsoft Graph.

Problemas de filtrado y consulta

Si obtiene errores de sintaxis o no obtiene resultados al utilizar la opción -Filter, asegúrese de que la sintaxis de su consulta OData sea correcta. Los errores comunes incluyen el uso incorrecto de comillas simples (') alrededor de valores de cadena o el uso de operaciones de filtro no admitidas.

Errores de selección de propiedades

¿Obtiene errores o resultados inesperados al utilizar la opción -Property para especificar propiedades? Verifique que los nombres de propiedad que está solicitando sean correctos y admitidos. No todas las propiedades de usuario están disponibles de forma predeterminada; algunos requieren permisos específicos o parámetros de consulta adicionales para acceder.

Conclusión

Cuando necesite recuperar información sobre usuarios en un entorno de Microsoft 365, el cmdlet de PowerShell Get-MgUser es su herramienta de referencia. Le permite ejecutar consultas tanto básicas como avanzadas para obtener detalles del usuario, adaptando los datos devueltos a sus requisitos. A lo largo de este artículo, hemos profundizado en las capacidades integrales del cmdlet Get-MgUser y su función fundamental para obtener datos de usuario dentro de Microsoft Graph a través de PowerShell. Desde los pasos iniciales de instalación del módulo Microsoft Graph PowerShell hasta técnicas avanzadas para extraer y exportar información del usuario, las estrategias expuestas iluminan la versatilidad del cmdlet para acceder y manejar los detalles del usuario de manera eficiente.

El potencial de este cmdlet de PowerShell para facilitar un análisis detallado de los usuarios, junto con su adaptabilidad a diversas necesidades administrativas, subraya su importancia en los ecosistemas de TI contemporáneos. Al comprender el comando y sus diversos parámetros, puede liberar el poder de la eficiencia y optimizar sus tareas administrativas. Ya sea que necesite filtrar usuarios, explorar todas las propiedades, solucionar problemas o ampliar la funcionalidad, Get-MgUser lo tiene cubierto. Entonces, ¡empiece a explorar las posibilidades y aproveche Get-MgUser al máximo hoy!

Preguntas frecuentes:

¿Cuál es el propósito del cmdlet Get-MgUser en PowerShell?

El cmdlet Get-MgUser PowerShell recupera información del usuario en un entorno de Microsoft 365. Le permite enumerar todos los usuarios, obtener detalles completos sobre un usuario en particular o localizar usuarios según atributos específicos, como su departamento o puesto de trabajo.

¿Cuáles son los pasos para conectarse a Microsoft Graph API a través de PowerShell?

Para invocar una API Graph en PowerShell, comience ejecutando el comando Connect-MgGraph para iniciar sesión y especificar los ámbitos necesarios. Después de establecer una conexión, puede llamar a cualquier método de Graph API disponible.

¿Cuáles son los requisitos previos para utilizar Get-MgUser?

Para utilizar Get-MgUser, debe tener instalado el módulo Microsoft Graph PowerShell. Puede instalarlo ejecutando el comando "Install-Module Microsoft.Graph" en PowerShell. Además, debe tener los permisos "User.Read.All" para acceder a la información del usuario en su entorno de Microsoft 365.

¿Cómo recupero la información de un usuario específico usando Get-MgUser?

Para recuperar la información de un usuario específico, puede utilizar el parámetro "-UserId" seguido del ID del usuario o el nombre principal del usuario (UPN). Por ejemplo:

Get-MgUser -UserId "john.doe@crescent.com".

¿Cómo puedo filtrar las propiedades de usuario devueltas por Get-MgUser?

Puede usar el parámetro "-Property" para especificar las propiedades específicas que desea recuperar y luego canalizarlas al cmdlet Seleccionar. Por ejemplo:

Get-MgUser -UserId "steve@crescent.com" -Property ID, Mail | Select ID, Mail

¿Es posible recuperar usuarios en función de un valor de propiedad específico?

Sí, puede utilizar el parámetro "-Filter" para recuperar usuarios según un valor de propiedad específico. Por ejemplo, para recuperar usuarios de un departamento específico:

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

¿Cómo puedo exportar la información del usuario recuperada por Get-MgUser a un archivo?

Puede exportar la información del usuario a un archivo utilizando el cmdlet "Export-Csv". Por ejemplo:

Get-MgUser -Filter "jobTitle eq 'Director'" | Export-Csv -Path "C:\Temp\Directors.csv" -NoTypeInformation

¿Cómo recupero una lista de todos los usuarios de mi organización usando Get-MgUser?

Para recuperar información sobre todos los usuarios de su organización usando Get-MgUser, puede usar el parámetro -All. Por ejemplo: Get-MgUser -All

¿Cómo busco un usuario específico usando Get-MgUser?

Para buscar un usuario específico usando Get-MgUser, puede usar el parámetro -Search para especificar una consulta de búsqueda. Por ejemplo, para buscar todos los usuarios con un nombre para mostrar que contenga "sam", puede utilizar el siguiente comando:

Get-MgUser -All -Search "DisplayName:sam" -ConsistencyLevel eventual

Artículos relacionados