Búsqueda de sitios web

Cómo utilizar Get-MsolUser para crear informes de usuario en Microsoft 365


El cmdlet Get-MsolUser forma parte del módulo MSOnline PowerShell que se utiliza para administrar su entorno de Microsoft 365 a través de una interfaz de línea de comandos. Get-MsolUser se puede utilizar para detallar información específica sobre un usuario de su organización o para generar informes sobre un grupo de usuarios.

En esta publicación, le mostraré cómo usar el cmdlet para obtener información específica sobre un usuario y también cómo crear informes útiles sobre varios usuarios. También se puede incorporar en scripts más grandes para crear una matriz o variable de usuarios que luego se pueden manipular, por ejemplo agregando alias a cada buzón o asignando licencias de Microsoft a cada usuario.

Requisitos previos

Para utilizar el cmdlet Get-MsolUser, debe asegurarse de estar ejecutando PowerShell versión 6 o anterior y de tener instalado el módulo MSOnline. Si no tiene instalado el módulo MSOnline PowerShell o recibe un error, siga mi guía sobre Cómo solucionar el término "Connect-MsolService" no se reconoce

Actualmente, el módulo MSOnline no es compatible con PowerShell v7.

Usar el cmdlet Get-MsolUser para obtener información sobre un usuario específico

Si no está seguro del usuario al que desea dirigirse, puede ejecutar el cmdlet Get-MsolUser solo y le devolverá una lista de usuarios de su organización. Desde aquí puede identificar el usuario al que desea dirigirse mediante el nombre para mostrar o el nombre principal del usuario.

Ahora que conoce el UserPrincipalName del usuario al que desea dirigirse, puede usar el siguiente comando para obtener información básica sobre ese usuario:

get-msoluser -UserprincipalName [email 

Puede ver en el siguiente resultado que solo se le devuelve información básica, como el nombre principal del usuario, el nombre para mostrar y si el usuario tiene licencia:

A menudo buscará información más detallada sobre un usuario en particular. Para obtener más información, podemos agregar una tubería '|' con el parámetro de lista de formato en nuestro comando para devolver una lista de toda la información sobre nuestro usuario.

get-msoluser -UserprincipalName [email  | FL

Ahora verá devuelta una larga lista de atributos y valores para su cuenta de usuario seleccionada. No pegaré el ejemplo aquí porque sería demasiado largo.

En lugar de enumerar toda la información sobre su usuario de forma predeterminada, puede especificar qué información le interesa utilizando el parámetro Seleccionar. Con el siguiente comando, he seleccionado información útil para recopilar sobre nuestro usuario.

get-msoluser -UserprincipalName [email  |`
select DisplayName, UserPrincipalName, UsageLocation,`
UserType, WhenCreated

Así es como se ve el resultado de nuestro comando:

Por último, en algunos casos es posible que desee exportar esa información a un CSV para manipularla o incluso cargarla en otro sistema. Puede utilizar el siguiente comando para hacer precisamente eso.

get-msoluser -UserprincipalName [email  |`
select DisplayName, UserPrincipalName, UsageLocation, UserType, WhenCreated |`
Export-CSV -NoTypeInformation -path C:\temp\userinfo2.csv

En el caso del script anterior, el archivo csv se guardará en C:\Temp\ con el nombre de archivo userinfo2.csv.

Cómo utilizar Get-MsolUser para informar sobre varios usuarios

Para generar informes sobre varios usuarios en el inquilino de Microsoft 365 de nuestra organización mediante el comando Get-MsolUser, podemos basarnos en lo que hemos hecho anteriormente.

Aquí hay un comando que podemos usar para enumerar todos los usuarios de nuestro inquilino y solo enumerar información específica sobre cada usuario:

get-msoluser | select DisplayName, UserPrincipalName, UsageLocation, UserType, IsLicensed

Aquí está el resultado, como puedes ver hay una sección para cada usuario con la información correspondiente que hemos seleccionado:

De manera similar a lo anterior, también podemos usar el cmdlet Export-CSV para exportar esta información a un CSV donde pueda manipularse:

get-msoluser | select DisplayName, UserPrincipalName, UsageLocation, UserType, IsLicensed | `
Export-CSV -NoTypeInformation -path C:\temp\userinfo2.csv

Así es como se vería el resultado después de haber exportado la información a un CSV:

En el caso de que solo queramos dirigirnos a usuarios específicos, podemos adaptar nuestro comando para buscar atributos específicos y palabras específicas en los atributos.

Por ejemplo, si queremos enumerar todos los usuarios que no tienen una ubicación de uso establecida, podemos usar el siguiente script para buscar usuarios que tienen un atributo de ubicación de uso nulo (o vacío):

get-msoluser | ? {$_.UsageLocation -ne $null} |`
select DisplayName, UserPrincipalName, UsageLocation, UserType, IsLicensed | `
Export-CSV -NoTypeInformation -path C:\temp\userinfo2.csv

Como puede ver a continuación, nuestro informe CSV ahora solo enumera los usuarios que no tienen una ubicación de uso establecida.

Lo anterior se puede adaptar para satisfacer sus necesidades. Por ejemplo, hay varios operadores que puedes usar en lugar de -ne (no es igual), como por ejemplo:

  • -eq (es igual exactamente)
  • -like (Coincide con un patrón comodín)
  • -notlike (No coincide con un patrón comodín)
  • -gt (Mayor que el valor especificado)
  • -ge (Mayor o igual al valor especificado)
  • -lt (Menor que el valor especificado)
  • -le Menor o igual al valor especificado)

También puede utilizar operadores lógicos en sus consultas de búsqueda, como Y o O. Aquí hay otro buen ejemplo en el que encontramos todas las cuentas sin una ubicación de uso configurada con un nombre para mostrar que incluye "Información":

get-msoluser | ? {$_.UsageLocation -eq $null -and $_.DisplayName -like "Info"} |`
select DisplayName, UserPrincipalName, UsageLocation, UserType, IsLicensed | `
Export-CSV -NoTypeInformation -path C:\temp\userinfo2.csv

Artículos relacionados