Atributos y propiedades de PowerShell de Get-MsolUser

Este artículo ha sido actualizado para 2021. Tenga en cuenta que WAAD se retiró en 2018, pero los cmdlets enumerados en este artículo siguen siendo útiles para las organizaciones que utilizan WAAD.

No muchos administradores de Office 365 saben que el cmdlet de PowerShell Get-MsolUser juega un papel importante cuando se administra Office 365 Windows Azure Active Directory, o WAAD para abreviar.

Tutoriales de Windows Server

Get-MsolUser puede ser muy útil en las tareas operativas diarias relacionadas con Office 365 WAAD.

Pero antes de poder utilizar el cmdlet Get-MsolUser o cualquiera de los otros cmdlets de PowerShell de Office 365, tendrá que instalar el Asistente de inicio de sesión en línea de Microsoft para profesionales de TI y el Módulo de Active Directory de Windows Azure para Windows PowerShell en un equipo que ejecute Windows 7 o una versión posterior.

Nota: En octubre de 2015, los desarrolladores de Microsoft lanzaron una nueva versión del Módulo de Active Directory de Azure que admite las cuentas de usuario de Office 365 que tienen habilitado el factor múltiple (MFA). La versión antigua de Azure Active Directory Module no es compatible con las cuentas habilitadas para MFA. Puedes descargar la versión MFA de Azure PowerShell desde el sitio de Microsoft connect.

En este caso, estamos utilizando el Office 365 Business Premium con una prueba gratuita durante 30 días. Hemos añadido un dominio llamado ExampleIT.com y este es el dominio que utilizaremos para los servicios de Office 365 como el correo electrónico, SharePoint, Lync y para permitir a los usuarios descargar las aplicaciones de Office como Word, Excel y PowerPoint en los equipos de escritorio o dispositivos móviles.

Después de instalar el Asistente de Inicio de Sesión de MSOnline y el Módulo de Azure PowerShell en un ordenador, ve a inicio > busca > escribe «Módulo de Directorio Activo de Windows Azure», haz clic con el botón derecho del ratón en el acceso directo y luego haz clic en «Ejecutar como administrador» para abrir la ventana de Azure PowerShell en modo elevado. A continuación, tendrá que utilizar «Connect-MSolservice» para conectarse a Office 365 Tenant, que a su vez, le permite explorar los usuarios de WAAD utilizando el cmdlet Get – MSOlUser.

De forma predeterminada, cuando se ejecuta el cmdlet GetMsolUser PowerShell, se le da el nombre principal del usuario, el nombre de visualización y si el usuario tiene licencia o no.

Cmdlet PowerShell Get-msoluser - Captura de pantalla #1

Como puede ver en la salida anterior, el Get-MSOlUser enumera todos los usuarios que se han creado en Office 365 con su UserPrincipalName, DisplayName y el estado de la licencia. La columna de estado isLicense indica si un usuario está suscrito a un servicio de Office 365 o no.

Esta es la salida básica que se ve cuando se ejecuta el cmdlet Get-MsolUser sin parámetros. Pero hay mucho más que puede hacer con el cmdlet Get-MsolUser.

Por ejemplo, puede utilizarlo para

  • Buscar usuarios
  • Identificar cuándo se creó un usuario
  • Averiguar cuándo un usuario cambió su contraseña la última vez
  • Qué licencias están asociadas a un usuario
  • Las políticas de contraseña que se aplican a un usuario
  • Si un usuario está sincronizado desde On-Premisas Active Directory o no

Esta lista de comandos Get-MsolUser PowerShell incluye opciones que podría encontrar útiles en sus necesidades operativas diarias.

Obtención de la fecha y hora de creación de los usuarios de Office 365

Para obtener una lista de usuarios con su hora de creación, ejecute el siguiente comando de PowerShell:

GET-MSOLUSER | SELECT-OBJECT USERPRINCIPALNAME, WHENCREATED | FT -AUTOSIZE

La propiedad «WhenCreated» muestra la hora de creación del usuario, como se muestra en la ventana de PowerShell siguiente:

Get-MsolUser PowerShell cmdlet - Screenshot #2

Si desea exportar la lista a un archivo CSV, utilice este comando:

Get-MsolUser -ALL | Select-Object UserPrincipalName, WhenCreated | Export-CSV AllUsersWithWhenCreated.CSV -NoTypeInformation

Un archivo CSV con el nombre de archivo «AllUsersWithWhenCreated.CSV» se generará en la carpeta local.

Consejo: El cmdlet de PowerShell Export-CSV es compatible con todos los cmdlets de Windows PowerShell.

Búsqueda de usuarios

Aunque puede buscar usuarios en el Centro de administración de Office 365, el uso del cmdlet Get-MsolUser le ofrece la oportunidad de almacenar el resultado en un archivo CSV. Por ejemplo, para recuperar una lista de usuarios que contengan «Rick» en el nombre para mostrar, ejecute el siguiente comando:

GET-MSOLUSER -SEARCHSTRING "RICK" | SELECT-OBJECT USERPRINCIPALNAME, ISLICENSED | EXPORT-CSV USERSWITHRICK.CSV -NOTYPEINFORMATION

Lista de usuarios habilitados/deshabilitados

También puede utilizar el cmdlet Get-MsolUser para recuperar una lista de usuarios habilitados o deshabilitados añadiendo el parámetro «-EnabledFilter». El parámetro «-EnabledFilter» admite dos valores: EnabledOnly y DisabledOnly como se muestra en estos comandos:

GET-MSOLUSER -ENABLEDFILTER ENABLEDONLY -ALL | EXPORT-CSV ENABLEDOFFICE365USERS.CSV -NOTYPEINFORMATION

GET-MSOLUSER -ENABLEDFILTER DISABLEDONLY -ALL | EXPORT-CSV DISABLEDOFFICE365USERS.CSV -NOTYPEINFORMATION

El primer comando recupera los usuarios que están habilitados mientras que el segundo comando recupera una lista de usuarios que están actualmente deshabilitados.

Obtención de usuarios sincronizados

Office 365 permite implementar un escenario de «Identidad sincronizada» en el que los usuarios de un Active Directory local se sincronizan mediante las herramientas DirSync, AADSync o AADConnect y se rellenan en Office 365 WAAD. Esta sincronización elimina la necesidad de crear usuarios en Office 365 por separado. Cada usuario debe ser sincronizado para recuperar la información actualizada del Directorio Activo local.

Es importante tener en cuenta que los cmdlets de Azure PowerShell no proporcionan un interruptor que se pueda utilizar para listar los usuarios que se sincronizan desde el Directorio Activo local. Esto es lo que hace que el cmdlet Get-MSOlUser sea tan potente.
A cada usuario que se sincroniza desde On-Premises Active Directory se le asigna un atributo de usuario llamado «ImmutableID». El atributo «ImmutableID» persiste cuando un usuario se sincroniza desde el Directorio Activo local. Para consultar los usuarios sincronizados y almacenar el resultado en un archivo CSV, ejecute el siguiente comando de PowerShell:

GET-MSOLUSER -ALL | WHERE IMMUTABLEID -NE $NULL

Ese comando indica a Get-MSOlUser que consulte todos los usuarios que no tienen un valor asignado al atributo ImmutableID.

Obtención de la última hora de sincronización de los usuarios

Cada usuario que se sincronice desde un Active Directory local tendrá una marca de tiempo de sincronización. Estos comandos sacarán la última hora de sincronización para un solo usuario o para varios usuarios.

Para obtener la última hora de sincronización de un solo usuario:

GET-MSOLUSER -USERPRINCIPALNAME "" | SELECT-OBJECT USERPRINCIPALNAME, LASTDIRSYNCTIME

Y para ejecutar este comando para todos los usuarios y almacenar la salida en un archivo CSV, utilice este comando:

GET-MSOLUSER -ALL | SELECT-OBJECT USERPRINCIPALNAME, LASTDIRSYNCTIME

Hay otra información valiosa del usuario de Office 365 que puede recuperar utilizando el cmdlet de PowerShell Get-MsolUser, pero primero necesita saber si hay propiedades disponibles para el usuario de Office 365 que contiene la información requerida.

Para obtener una lista de propiedades de usuario asociadas a los usuarios de Office 365, ejecute el comando «Get-MSOlUser | Get-Member». Una vez que conozca las propiedades de usuario que podrían contener la información de usuario necesaria, utilice la siguiente sintaxis de Get-MSOlUser para recuperar la información de usuario:

GET-MSOLUSER -USERPRINCIPALNAME "" | SELECT-OBJECT PROPERTY1, PROPERTY2, PROPERTY3

Obtención de información para todos los usuarios de Office 365

Es posible que haya notado el uso de los parámetros -MaxResults o -ALL en algunos de los comandos de PowerShell explicados anteriormente. De forma predeterminada, el cmdlet Get-MsolUser solo puede recuperar 500 usuarios en un comando.

Si hay más de 500 usuarios en un WAAD de Office 365, debe utilizar los parámetros -ALL o -MaxResults. El parámetro -MaxResults indica al cmdlet Get-MsolUser que devuelva hasta el valor especificado en el parámetro -MaxResults, mientras que el parámetro -ALL permite obtener resultados para todos los usuarios de Office 365. No olvide utilizar estos parámetros en función de los requisitos de su comando.

Get-MSOLUSER para mayor flexibilidad

Microsoft Office 365 proporciona cmdlets de PowerShell que pueden reducir drásticamente el tiempo que se tarda en realizar tareas a través del Centro de administración de Office 365. Dado que la mayoría de las tareas en un entorno de nube de Office 365 están asociadas a un usuario, el uso del cmdlet de PowerShell Get-MsolUser proporciona una mayor flexibilidad en cuanto a la gestión de las instancias WAAD de Office 365.

Nirmal Sharma es MCSEx3, MCITP y Microsoft MVP en Servicios de directorio. Está especializado en servicios de directorio, Microsoft Azure, clústeres de conmutación por error, Hyper-V, System Center y servidores Exchange, y ha estado involucrado con las tecnologías de Microsoft desde 1994. En su tiempo libre, le gusta ayudar a los demás y compartir algunos de sus conocimientos escribiendo consejos y artículos en varios sitios y contribuyendo a Health Packs para las soluciones ADHealthProf.ITDynamicPacks.Net. Se puede contactar con Nirmal en

Leave a Reply