Búsqueda de sitios web

Utilice PowerShell para ver objetos de Office 365 | Parte 2#3


En el artículo actual, revisamos los diversos ejemplos de la forma en que usamos PowerShell para crear una "búsqueda filtrada" en un entorno basado en Office 365.

Utilice PowerShell para ver objetos de Office 365 y Exchange Online | Serie de artículos

La serie de artículos incluye los siguientes artículos:

  1. Uso de la “declaración Where” de PowerShell para crear búsquedas filtradas | Objetos de Office 365 y Exchange Online
  2. Utilice PowerShell para ver objetos de Office 365 (este artículo)
  3. Utilice PowerShell para ver objetos de Exchange Online

Consultas de búsqueda filtradas

Los ejemplos que se tratarán en el artículo actual se relacionan con "consultas de búsqueda filtradas" que debemos realizar para obtener información sobre "usuarios específicos de Office 365" que tienen una propiedad específica o un valor de fecha/hora específico.

Utilizo el término entorno basado en Office 365 para relacionarme con las partes de Office 365, que almacenan y administran las cuentas de los usuarios de Office 365.

En el entorno basado en Office 365, el Active Directory que almacena los usuarios, grupos, etc. de Office 365 es Azure Active Directory.

El objeto principal de PowerShell al que nos referimos en Azure Active Directory es el "objeto de usuario". El cmdlet de PowerShell que utilizamos para obtener información y administrar usuarios de Office 365 es:

Get-MsolUser

La herramienta principal que utilizamos para la tarea de realizar una "consulta de búsqueda filtrada" son los cmdlets de PowerShell (declaración):

Where-Object

Si necesita más información sobre cómo utilizamos el comando Where-Object de PowerShell, lea el primer artículo de la serie de artículos actual.

Nota: En la serie de artículos actual, utilizamos la forma más corta: Dónde (en lugar de Dónde-Objeto). Otra opción que podemos usar para definir la "declaración Dónde" es usar los caracteres de signo de interrogación, '?' en lugar de 'Dónde' o 'Dónde-Objeto'.

Breve introducción al comando de PowerShell Get-MsolUser

Ver todas las cuentas de usuario de Office 365 frente a un número limitado predeterminado

En el entorno basado en Office 365 (Azure Active Directory), el comando principal de PowerShell que utilizamos para obtener información sobre los usuarios de Office 365 es Get-MsolUser.

Cuando utilizamos el comando Get-MsolUser sin ningún parámetro adicional, el comando Get-MsolUser mostrará hasta el valor predeterminado de 500 resultados.

En caso de que su inquilino de Office 365 incluya una mayor cantidad de usuarios y desee que el comando de PowerShell Get-MsolUser obtenga información sobre todos los usuarios de Office 365 existentes, debemos agregar el parámetro de PowerShell:

Por ejemplo:

Mostrar una lista de todos los usuarios de Office 365 | ilimitado.

Get-MsolUser -All

¿Cómo saber qué parámetro de filtro puedo usar cuando dirijo un objeto de usuario de Office 365?

En el siguiente artículo repasamos diferentes ejemplos en los que creamos una búsqueda Filtrada, buscando una propiedad específica de la cuenta de usuario de Office 365.

En caso de que queramos obtener una lista de todas las propiedades disponibles de un objeto de PowerShell específico, como "cuenta de usuario de Office 365", podemos usar el cmdlet Get-Member de PowerShell.

Por ejemplo, para obtener una lista de las propiedades (miembros) del comando de PowerShell Get-MSolUser que podemos consultar, podemos usar el comando de PowerShell Get-Member.

Un ejemplo de la sintaxis de PowerShell que utilizamos es:

Get-MSolUser -MaxResults 1 | Get-Member

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MSolUser -MaxResults 1 | Get-Member
TypeName: Microsoft.Online.Administration.User

Name                                   MemberType Definition                                                                                                                                        
----                                   ---------- ----------                                                                                                                                        
Equals                                 Method     bool Equals(System.Object obj)                                                                                                                    
GetHashCode                            Method     int GetHashCode()                                                                                                                                 
GetType                                Method     type GetType()                                                                                                                                    
ToString                               Method     string ToString()                                                                                                                                 
AlternateEmailAddresses                Property   System.Collections.Generic.List[string] AlternateEmailAddresses {get;set;}                                                                        
AlternateMobilePhones                  Property   System.Collections.Generic.List[string] AlternateMobilePhones {get;set;}                                                                          
AlternativeSecurityIds                 Property   System.Collections.Generic.List[Microsoft.Online.Administration.AlternativeSecurityId] AlternativeSecurityIds {get;set;}                          
BlockCredential                        Property   System.Nullable[bool] BlockCredential {get;set;}                                                                                                  
City                                   Property   string City {get;set;}                                                                                                                            
CloudExchangeRecipientDisplayType      Property   System.Nullable[int] CloudExchangeRecipientDisplayType {get;set;}                                                                                 
Country                                Property   string Country {get;set;}                                                                                                                         
Department                             Property   string Department {get;set;}                                                                                                                      
DirSyncProvisioningErrors              Property   System.Collections.Generic.List[Microsoft.Online.Administration.DirSyncProvisioningError] DirSyncProvisioningErrors {get;set;}                    
DisplayName                            Property   string DisplayName {get;set;}                                                                                                                     
Errors                                 Property   System.Collections.Generic.List[Microsoft.Online.Administration.ValidationError] Errors {get;set;}                                                
ExtensionData                          Property   System.Runtime.Serialization.ExtensionDataObject ExtensionData {get;set;}                                                                         
Fax                                    Property   string Fax {get;set;}                                                                                                                             
FirstName                              Property   string FirstName {get;set;}                                                                                                                       
ImmutableId                            Property   string ImmutableId {get;set;}                                                                                                                     
IndirectLicenseErrors                  Property   System.Collections.Generic.List[Microsoft.Online.Administration.IndirectLicenseError] IndirectLicenseErrors {get;set;}                            
IsBlackberryUser                       Property   System.Nullable[bool] IsBlackberryUser {get;set;}                                                                                                 
IsLicensed                             Property   System.Nullable[bool] IsLicensed {get;set;}                                                                                                       
LastDirSyncTime                        Property   System.Nullable[datetime] LastDirSyncTime {get;set;}                                                                                              
LastName                               Property   string LastName {get;set;}                                                                                                                        
LastPasswordChangeTimestamp            Property   System.Nullable[datetime] LastPasswordChangeTimestamp {get;set;}                                                                                  
LicenseReconciliationNeeded            Property   System.Nullable[bool] LicenseReconciliationNeeded {get;set;}                                                                                      
Licenses                               Property   System.Collections.Generic.List[Microsoft.Online.Administration.UserLicense] Licenses {get;set;}                                                  
LiveId                                 Property   string LiveId {get;set;}                                                                                                                          
MobilePhone                            Property   string MobilePhone {get;set;}                                                                                                                     
MSExchRecipientTypeDetails             Property   System.Nullable[long] MSExchRecipientTypeDetails {get;set;}                                                                                       
MSRtcSipDeploymentLocator              Property   string MSRtcSipDeploymentLocator {get;set;}                                                                                                       
MSRtcSipPrimaryUserAddress             Property   string MSRtcSipPrimaryUserAddress {get;set;}                                                                                                      
ObjectId                               Property   System.Nullable[guid] ObjectId {get;set;}                                                                                                         
Office                                 Property   string Office {get;set;}                                                                                                                          
OverallProvisioningStatus              Property   Microsoft.Online.Administration.ProvisioningStatus OverallProvisioningStatus {get;set;}                                                           
PasswordNeverExpires                   Property   System.Nullable[bool] PasswordNeverExpires {get;set;}                                                                                             
PasswordResetNotRequiredDuringActivate Property   System.Nullable[bool] PasswordResetNotRequiredDuringActivate {get;set;}                                                                           
PhoneNumber                            Property   string PhoneNumber {get;set;}                                                                                                                     
PortalSettings                         Property   System.Xml.XmlElement PortalSettings {get;set;}                                                                                                   
PostalCode                             Property   string PostalCode {get;set;}                                                                                                                      
PreferredLanguage                      Property   string PreferredLanguage {get;set;}                                                                                                               
ProxyAddresses                         Property   System.Collections.Generic.List[string] ProxyAddresses {get;set;}                                                                                 
ReleaseTrack                           Property   System.Nullable[Microsoft.Online.Administration.O365UserReleaseTrack] ReleaseTrack {get;set;}                                                     
ServiceInformation                     Property   System.Collections.Generic.List[Microsoft.Online.Administration.ServiceInformation] ServiceInformation {get;set;}                                 
SignInName                             Property   string SignInName {get;set;}                                                                                                                      
SoftDeletionTimestamp                  Property   System.Nullable[datetime] SoftDeletionTimestamp {get;set;}                                                                                        
State                                  Property   string State {get;set;}                                                                                                                           
StreetAddress                          Property   string StreetAddress {get;set;}                                                                                                                   
StrongAuthenticationMethods            Property   System.Collections.Generic.List[Microsoft.Online.Administration.StrongAuthenticationMethod] StrongAuthenticationMethods {get;set;}                
StrongAuthenticationPhoneAppDetails    Property   System.Collections.Generic.List[Microsoft.Online.Administration.StrongAuthenticationPhoneAppDetail] StrongAuthenticationPhoneAppDetails {get;set;}
StrongAuthenticationProofupTime        Property   System.Nullable[long] StrongAuthenticationProofupTime {get;set;}                                                                                  
StrongAuthenticationRequirements       Property   System.Collections.Generic.List[Microsoft.Online.Administration.StrongAuthenticationRequirement] StrongAuthenticationRequirements {get;set;}      
StrongAuthenticationUserDetails        Property   Microsoft.Online.Administration.StrongAuthenticationUserDetails StrongAuthenticationUserDetails {get;set;}                                        
StrongPasswordRequired                 Property   System.Nullable[bool] StrongPasswordRequired {get;set;}                                                                                           
StsRefreshTokensValidFrom              Property   System.Nullable[datetime] StsRefreshTokensValidFrom {get;set;}                                                                                    
Title                                  Property   string Title {get;set;}                                                                                                                           
UsageLocation                          Property   string UsageLocation {get;set;}                                                                                                                   
UserLandingPageIdentifierForO365Shell  Property   string UserLandingPageIdentifierForO365Shell {get;set;}                                                                                           
UserPrincipalName                      Property   string UserPrincipalName {get;set;}                                                                                                               
UserThemeIdentifierForO365Shell        Property   string UserThemeIdentifierForO365Shell {get;set;}                                                                                                 
UserType                               Property   System.Nullable[Microsoft.Online.Administration.UserType] UserType {get;set;}                                                                     
ValidationStatus                       Property   System.Nullable[Microsoft.Online.Administration.ValidationStatus] ValidationStatus {get;set;}                                                     
WhenCreated                            Property   System.Nullable[datetime] WhenCreated {get;set;}            

Usuarios de Office 365 e información de licencia

En esta sección, revisamos cómo realizar una búsqueda filtrada mediante la declaración de PowerShell Dónde, buscando información sobre el estado de la licencia de los usuarios de Office 365.

Mostrar usuarios de Office 365 que tienen una licencia

Sintaxis del comando de PowerShell:

Get-MsolUser -All | Where {$_.isLicensed -eq "True"}

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser -All | Where {$_.isLicensed -eq "True"}

UserPrincipalName                   DisplayName           isLicensed
-----------------                   -----------           ----------
Demi@o365info.com                   Demi Lovato           True      
Angelina@o365info.com               Angelina Jolie        True      
George@o365info.com                 George Michael        True      
bradp@o365info.com                  Brad Pitt             True      
onprem300@o365info.com              onprem300             True      
James@o365info.com                  James Brown           True      
Chris@o365info.com                  Chris Brown           True      
admin@o365info.com                  admin                 True      
Britney@o365info.com                Britney Spears        True      
Nicki@o365info.com                  Nicki Minaj           True      
Bruno@o365info.com                  Bruno Mars            True      

Mostrar usuarios de Office 365 que no tienen licencia

Puede utilizar una de las siguientes opciones de comando de PowerShell:

Sintaxis del comando PowerShell (opción 1):

Get-MsolUser -UnlicensedUsersOnly

Sintaxis del comando PowerShell (opción 2):

Get-MsolUser -all | Where {$_.isLicensed -ne "TRUE"}

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser -UnlicensedUsersOnly

UserPrincipalName               DisplayName                isLicensed
-----------------               -----------                ----------
ADFS_SRV@o365info.com           ADFS_SRV                   False     
ex2007@o365info.com             ex2007                     False     
ex2013@o365info.com             ex2013                     False     
ex2010@o365info.com             ex2010                     False     
E-mail-attachments@o365info.com E-mail attachments Mailbox False     
John@o365info.com               John Armstrong             False     
hd@o365info.com                 Help desk support tickets  False     
Room-MB01@o365info.com          Room-MB01                  False     
Room-MB02@o365info.com          Room-MB02                  False     
Shared-MB01@o365info.com        Shared-MB01                False     
Shared-MB02@o365info.com        Shared-MB02                False     
DMARC-Spoof@o365info.com        DMARC and Spoof E-mail     False     
ab01@o365info.com               ab01                       False     
Selena@o365info.com             Selena Gomez               False     

Mostrar los usuarios de Office 365 que se definen como usuarios con conciliación de licencia necesaria

El término "Conciliación de licencias" no es tan claro.

Una breve explicación: el término “Conciliación de licencias” está relacionado con un escenario en el que los usuarios de Office 365 tienen un buzón de Exchange Online pero la cuenta de usuario de Office 365 no tiene un Office 365 válido. licencia.

Este tipo de escenario se puede realizar en un entorno como Exchange Hybrid cuando los buzones de correo locales de Exchange se migran a la "nube" (Exchange Online).

Cuando migramos el buzón local de Exchange, la licencia requerida de Office 365 no se asigna automáticamente.

El usuario de Office 365 podrá acceder a su “buzón de Exchange Online”, aunque no tenga una licencia de Office 365, por un período de gracia de 30 días.

En este escenario, el estado de la licencia de Office 365 se defiende como "Conciliación de licencias".

En otras palabras, debemos asignar una licencia de Office 365 a cada usuario de Office 365 cuyo estado de licencia esté configurado como "Conciliación de licencias".

El comando de PowerShell que utilizamos para obtener información sobre dichos usuarios es:

Sintaxis del comando de PowerShell:

Get-MsolUser -LicenseReconciliationNeededOnly

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser -LicenseReconciliationNeededOnly

UserPrincipalName      DisplayName isLicensed
-----------------      ----------- ----------
userA-001@o365info.com userA-001   False     
mord@o365info.com      Mor Danino  False

Usuarios de Office 365 | Cuenta de usuario deshabilitada y habilitada + Cuentas de usuario bloqueadas

Mostrar los usuarios de Office 365 que se consideran - Usuarios habilitados

De forma predeterminada, las cuentas de usuario de Office 365 están habilitadas.

En caso de que queramos mostrar una lista de usuarios habilitados de Office 365, podemos usar un filtro predefinido llamado “EnabledOnly”.

Sintaxis del comando de PowerShell:

Get-MsolUser -EnabledFilter EnabledOnly -All | FT UserPrincipalName,BlockCredential

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser -EnabledFilter EnabledOnly -All | FT UserPrincipalName,BlockCredential

UserPrincipalName              BlockCredential
-----------------              ---------------
ex2010@o365info.com                      False
omri@o365info2.onmicrosoft.com           False
Christina@o365pilot.com                  False
Justin@o365pilot.com                     False
Billy@o365info.com                       False
Craig@o365pilot.com                      False
Depeche@o365pilot.com                    False
Elvis@o365pilot.com                      False

Mostrar usuarios de Office 365 que se consideran usuarios discapacitados

La opción de bloquear al usuario de Office 365 a través de la interfaz web del centro de administración de Office 365 se describe como “Inicio de sesión bloqueado. "

Cuando usamos PowerShell para mostrar una lista de "usuarios bloqueados", el parámetro que usamos se llama "DisabledOnly". "

Sintaxis del comando de PowerShell:

Get-MsolUser -EnabledFilter DisabledOnly -All | FT UserPrincipalName,BlockCredential

Otra variación del comando de PowerShell que muestra los usuarios bloqueados de Office 365 es:

Sintaxis del comando de PowerShell:

Get-MsolUser | Where {$_.BlockCredential -eq $True} | FT UserPrincipalName,BlockCredential

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser | Where {$_.BlockCredential -eq $True} | FT UserPrincipalName,BlockCredential

UserPrincipalName                                            BlockCredential
-----------------                                            ---------------
Angelina@o365info.com                                                   True
bradp@o365info.com                                                      True
Exchange_Online-ApplicationAccount@o365info2.onmicrosoft.com            True

Mostrar todos los usuarios de Office 365 con un rol específico

En caso de que desee obtener una lista de las cuentas de usuario de Office 365 que tienen la función de Administrador global, puede utilizar los siguientes comandos de PowerShell:

$O365ROLE = Get-MsolRole -RoleName "Company Administrator"

Get-MsolRoleMember -RoleObjectId $O365ROLE.ObjectId

Ejemplo de salida de la consola PowerShell:

Get-MsolRoleMember -RoleObjectId $O365ROLE.ObjectId

RoleMemberType   EmailAddress                    DisplayName    isLicensed
--------------   ------------                    -----------    ----------
ServicePrincipal                                 serviceAccount           
User             Britney@o365info.com            Britney        True      
User             Nicki@o365info.com              Nicki          True      
User             Adele@o365info.com              Adele          True      

Usuarios de Office 365 que se crearon en un momento específico

Office 365 (Azure Active Directory) no proporciona información sobre la hora específica a la que los usuarios de Office 365 inician sesión en el portal de Office 365.

La única "información de fecha/hora" que podemos "obtener" sobre los usuarios de Office 365 es la información sobre la hora en que se creó la cuenta de usuario de Office 365.

En la siguiente sección, me gustaría demostrar varios tipos de consultas de PowerShell de “fecha/hora”, que podemos usar para “obtener” información sobre los usuarios de Office 365 que se creó en un momento específico o en un rango de tiempo específico.

Antes de comenzar con la información sobre la sintaxis específica del comando PowerShell, dediquemos unos momentos al concepto de: usar PowerShell para un "evento" de consulta que ocurre en un rango de tiempo específico.

Para crear la "consulta basada en tiempo" de PowerShell, necesitaremos definir los siguientes parámetros:

1. El objeto

El objeto concreto que solicitamos para obtener información sobre él. El objeto puede ser "Cuenta de usuario", "Buzón de Exchange", etc.

2. La propiedad específica del objeto

Por ejemplo, en el entorno de Office 365, podemos solicitar obtener información sobre una hora específica en la que se creó la cuenta de usuario de Office 365.

En Office 365 la propiedad que abordamos es WhenCreated

3. La unidad de tiempo

PowerShell ofrece una variedad de "unidades de tiempo" que podemos usar, como milisegundos, segundos, minutos, hora, día, año, etc.

4. Operador de PowerShell

Este es el operador de PowerShell específico que utilizamos.

Hay muchos tipos de operadores de PowerShell como -lt (Menor que), -le (Menor o igual que), -gt ( Mayor que), -ge (Mayor o igual que), -eq (Igual a), -ne (No igual a).

En nuestros ejemplos, demostraré un tipo diferente de escenario utilizando los siguientes operadores de PowerShell:

  • ge (Mayor o igual que).
  • le (Menor o igual que).

Usar el operador PowerShell con rangos de tiempo

En nuestro ejemplo, demostraré varios escenarios utilizando los dos operadores de PowerShell siguientes:

1.ge (mayor o igual a)

El uso del operador ge nos ayudará a obtener información sobre un evento que ocurrió desde un momento específico en adelante.

2. le (Menor o igual que)

El uso del operador le nos ayudará a obtener información sobre un evento que ocurrió antes de un momento específico.

Para poder plasmar este concepto, usemos el siguiente ejemplo:

El punto de partida es el comando de PowerShell Get-Date, que recupera la fecha actual (día, mes, año, etc.).

En nuestro ejemplo específico, queremos definir un rango de tiempo de dos meses antes de la fecha actual.

Para definir este rango de tiempo, utilizamos el siguiente comando de PowerShell:

(Get-Date).AddMonths(-2)

Tomamos la fecha actual y la restamos de la fecha actual 2 meses.

En nuestro ejemplo, la hora actual es el mes 8 (agosto) y el día es el 15.

El resultado del comando de PowerShell (Get-Date).AddMonths(-2) se obtendrá como un rango de tiempo, que abarca los siguientes meses: mes 6 y mes 7 hasta el mes actual (mes 8).

Si queremos ser más precisos, el comando definirá un rango de tiempo, que comienza el 01/06 y finaliza el 15/08.

1. Usando el operador ge (mayor o igual que) + rango de tiempo

Cuando utilizamos el operador “ge” de PowerShell, con la combinación del comando (Get-Date).AddMonths(-2), le pedimos a PowerShell, que nos muestre información sobre un evento que ocurrió en el siguiente rango de tiempo: 01/06 hasta el 15/08.

Los puntos del rango de tiempo se definen de la siguiente manera:

El punto inicial del rango de tiempo se calcula tomando la fecha actual y restando dos meses de la fecha actual.

En nuestro ejemplo, el punto de partida es el primer día del mes 6.

El "Fin" del rango de tiempo es la "fecha actual".

En nuestro ejemplo, la fecha actual es el día 15 del mes 8.

Nota: el valor de la "fecha actual" es solo un valor arbitrario que usamos para la demostración.

2. Usando el operador le (menor o igual a) + rango de tiempo

Cuando usamos el operador “le” de PowerShell, con la combinación del comando - (Get-Date).AddMonths(-2), le pedimos a PowerShell que nos muestre información sobre un “evento” que sucedió antes <el siguiente rango de tiempo: 01/06.

En el siguiente ejemplo, nos gustaría obtener información sobre las cuentas de usuario de Office 365 que se crearon en un rango de tiempo específico.

  1. El objeto de PowerShell es una cuenta de usuario. (Representado por los cmdlets de PowerShell Get-MsolUser).
  2. La propiedad específica de la cuenta de usuario es WhenCreated.
  3. La unidad de tiempo que utilizamos es Meses.

Para poder obtener una lista de cuentas de usuario de Office 365 que responden a nuestra consulta específica, utilizamos los cmdlets (declaración) de PowerShell denominados Dónde, para definir la condición y filtrar la información requerida.

Escenario 1: información sobre cuentas de usuario de Office 365 que se crearon en los últimos dos meses.

Para definir el “intervalo de tiempo” que comienza hace dos meses y dura hasta la fecha actual, utilizamos el operador de PowerShell ge (Mayor o igual a).

Escenario 2: información sobre cuentas de usuario de Office 365 que se crearon antes de los últimos dos meses.

Para definir el "intervalo de tiempo" que comienza hace dos meses, a partir de la fecha actual, y dura "para siempre", utilizamos el operador de PowerShell - le (Menor o igual a).

Filtrar información sobre - “objeto de cuenta de usuario” según un rango de tiempo específico

En la siguiente sección, proporciono varios ejemplos de sintaxis de comandos de PowerShell, que nos ayudarán a filtrar información sobre "objeto de cuenta de usuario" en función de un rango de tiempo específico.

  • En la primera parte, buscaremos información sobre las cuentas de usuario de Office 365, que se crearon desde una fecha determinada en el pasado hasta la fecha actual.
  • En la segunda parte, buscaremos información sobre las cuentas de usuario de Office 365 que se crearon antes de un rango de fechas específico.

Mostrar una lista de usuarios de Office 365 + información sobre el tiempo de creación | Ordenar la información por fecha de creación

Sintaxis del comando de PowerShell:

Get-MsolUser | Sort WhenCreated | Select UserPrincipalName,DisplayName,WhenCreated

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser | Sort WhenCreated | Select UserPrincipalName,DisplayName,WhenCreated

UserPrincipalName       DisplayName         WhenCreated          
-----------------       -----------         -----------          
Christina@o365pilot.com Christina Aguilera 12/11/2015 4:44:08 AM 
Justin@o365pilot.com    Justin timberlake  12/11/2015 4:45:35 AM 
Billy@o365info.com      Billy              12/11/2015 4:49:58 AM 
Craig@o365pilot.com     Craig David        12/11/2015 4:53:07 AM 
Depeche@o365pilot.com   Depeche Mode       12/11/2015 4:57:25 AM 
Elvis@o365pilot.com     Elvis Preslay      12/11/2015 5:37:20 AM 
Beyonce@o365info.com    Beyonce            12/11/2015 5:41:22 AM 
Beatles@o365pilot.com   Beatles the        12/11/2015 5:45:31 AM 
John@o365info.com       John Armstrong     4/8/2016 9:39:57 AM   
Angelina@o365info.com   Angelina Jolie     4/14/2016 6:39:46 AM  
Britney@o365info.com    Britney Spears     10/16/2016 3:53:48 AM 
Selena@o365info.com     Selena Gomez       10/17/2016 2:03:12 PM 

Escenario 1#2: obtener información sobre las cuentas de usuario de Office 365 que se crearon en el último intervalo de tiempo X

En nuestro ejemplo, necesitamos "obtener" información sobre las cuentas de usuario de Office 365 que se crearon "últimamente".

El término "últimamente" se puede traducir como: Minutos, Horas, Semanas, Meses o Años.

La “condición” de PowerShell que definimos se basa en el operador de PowerShell -ge (mayor o igual que).

Mostrar cuentas de usuario de Office 365 que se crearon después de una fecha específica

En el siguiente ejemplo, queremos obtener información sobre las cuentas de usuario de Office 365 que se crearon en la fecha: 10/11/2016 o después de esta fecha.

Sintaxis del comando de PowerShell:

Get-MsolUser | Where {$_.WhenCreated -ge "11/10/2016"} | Select UserPrincipalName,WhenCreated

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser | Where {$_.WhenCreated -ge "11/10/2016"} |  Select UserPrincipalName,WhenCreated 

UserPrincipalName        WhenCreated           
-----------------        -----------           
Demi@o365info.com        12/13/2016 11:22:17 AM
Shared-MB04@o365info.com 11/28/2016 1:30:42 PM 
Shared-MB05@o365info.com 11/28/2016 1:31:16 PM 
Shared-MB06@o365info.com 11/28/2016 1:31:46 PM 
Rihanna@o365info.com     12/13/2016 11:21:41 AM
room03@o365info.com      12/06/2016 7:45:23 AM 
mord@o365info.com        12/15/2016 1:01:42 PM 
Shared-MB07@o365info.com 11/28/2016 1:32:30 PM 
Aretha@o365info.com      12/18/2016 6:59:28 AM 
Shared-MB03@o365info.com 11/28/2016 1:29:30 PM 
bob@o365info.com         11/17/2016 5:39:09 PM 

Mostrar una lista de cuentas de usuario de Office 365 que se crearon en los últimos X minutos

En el siguiente ejemplo, queremos obtener información sobre las cuentas de usuario de Office 365 que se crearon en los últimos 160 minutos.

Para definir un rango medido en minutos, usamos el parámetro de PowerShell - Add Minutes.

Sintaxis del comando de PowerShell:

Get-MsolUser | Where {$_.WhenCreated -ge ((Get-Date).Addminutes(-160))} | Select UserPrincipalName,WhenCreated

Ejemplo de salida de la consola PowerShell:

PS C:\>  Get-MsolUser | Where {$_.WhenCreated -ge ((Get-Date).Addminutes(-160))} | Select UserPrincipalName,WhenCreated

UserPrincipalName      WhenCreated           
-----------------      -----------           
Demi@o365info.com      12/13/2016 11:22:17 AM
Rihanna@o365info.com   12/13/2016 11:21:41 AM
mord@o365info.com      12/15/2016 1:01:42 PM 
Aretha@o365info.com    12/18/2016 6:59:28 AM 
userA-001@o365info.com 12/14/2016 12:07:59 PM

Mostrar una lista de cuentas de usuario de Office 365 que se crearon en las últimas X horas

En el siguiente ejemplo, queremos obtener información sobre las cuentas de usuario de Office 365 que se crearon en las últimas 40 horas.

Para definir un rango medido en horas, usamos el parámetro de PowerShell - AddHours.

Sintaxis del comando de PowerShell:

Get-MsolUser | Where {$_.WhenCreated -ge ((Get-Date).AddHours(-40))} | Select UserPrincipalName,WhenCreated

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser | Where {$_.WhenCreated -ge ((Get-Date).AddHours(-40))} | Select UserPrincipalName,WhenCreated 

UserPrincipalName      WhenCreated           
-----------------      -----------           
Demi@o365info.com      12/13/2016 11:22:17 AM
Rihanna@o365info.com   12/13/2016 11:21:41 AM
room04@o365info.com    12/06/2016 7:46:55 AM 
room03@o365info.com    12/06/2016 7:45:23 AM 
mord@o365info.com      12/15/2016 1:01:42 PM 
Aretha@o365info.com    12/18/2016 6:59:28 AM 
userA-001@o365info.com 12/14/2016 12:07:59 PM

Mostrar una lista de cuentas de usuario de Office 365 que se crearon en los últimos X días

En el siguiente ejemplo, queremos obtener información sobre las cuentas de usuario de Office 365 que se crearon en los últimos 40 días.

Para definir un rango medido en días, utilizamos el parámetro de PowerShell - Adddays.

Sintaxis del comando de PowerShell:

Get-MsolUser | Where {$_.WhenCreated -ge ((Get-Date).Adddays(-40))} | FT UserPrincipalName,WhenCreated

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser | Where {$_.WhenCreated -ge ((Get-Date).Adddays(-40))} | FT UserPrincipalName,WhenCreated 

UserPrincipalName        WhenCreated           
-----------------        -----------           
Demi@o365info.com        12/13/2016 11:22:17 AM
Shared-MB05@o365info.com 11/28/2016 1:31:16 PM 
Shared-MB06@o365info.com 11/28/2016 1:31:46 PM 
Rihanna@o365info.com     12/13/2016 11:21:41 AM
Dorit@easybellezza.com   12/01/2016 8:46:47 AM 
room04@o365info.com      12/06/2016 7:46:55 AM 
room03@o365info.com      12/06/2016 7:45:23 AM 
Aretha@o365info.com      12/18/2016 6:59:28 AM 
Shared-MB03@o365info.com 11/28/2016 1:29:30 PM 
bob@o365info.com         11/17/2016 5:39:09 PM 

Mostrar una lista de cuentas de usuario de Office 365 que se crearon en los últimos X meses

En el siguiente ejemplo, queremos obtener información sobre las cuentas de usuario de Office 365 que se crearon en los últimos 2 meses.

Para definir un rango medido en meses, utilizamos el parámetro de PowerShell - AddMonths.

Sintaxis del comando de PowerShell:

Get-MsolUser | Where {$_.WhenCreated -ge ((Get-Date).AddMonths(-2))} | FT UserPrincipalName,WhenCreated

Mostrar una lista de cuentas de usuario de Office 365 que se crearon en un mes específico

En el siguiente ejemplo, queremos obtener información sobre las cuentas de usuario de Office 365 que se crearon en un mes específico. El mes que utilizamos es - mes de agosto (8).

Sintaxis del comando de PowerShell:

Get-MsolUser | Where-Object {($_.WhenCreated).Month -eq 8} | Select UserPrincipalName,WhenCreated

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser | Where-Object {($_.WhenCreated).Month -eq 8} | Select UserPrincipalName,WhenCreated

UserPrincipalName        WhenCreated          
-----------------        -----------          
Shared-MB02@o365info.com 08/27/2016 7:11:53 PM
Shared-MB01@o365info.com 08/27/2016 5:41:50 PM
Eyal200@o365info.com     08/30/2016 4:46:40 AM
Room-MB02@o365info.com   08/27/2016 4:29:18 AM
Room-MB01@o365info.com   08/25/2016 5:25:29 PM

Mostrar una lista de cuentas de usuario de Office 365 que se crearon en los últimos X años

En el siguiente ejemplo, queremos obtener información sobre las cuentas de usuario de Office 365 que se crearon en los últimos 2 años.

Para definir un rango medido en años, utilizamos el parámetro de PowerShell - AddYears.

Sintaxis del comando de PowerShell:

Get-MsolUser | Where {$_.WhenCreated -ge ((Get-Date).AddYears(-2))} | FT UserPrincipalName,WhenCreated

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser | Where {$_.WhenCreated -ge ((Get-Date).AddYears(-2))} | FT UserPrincipalName,WhenCreated

UserPrincipalName     WhenCreated           
-----------------     -----------           

Demi@o365info.com     12/13/2016 11:22:17 AM
Angelina@o365info.com 04/14/2016 6:39:46 AM 
George@o365info.com   09/24/2016 5:28:58 PM 
bradp@o365info.com    09/12/2016 6:01:09 AM 
James@o365info.com    10/23/2016 8:58:41 PM 
Chris@o365info.com    10/22/2015 3:31:34 AM 
Britney@o365info.com  10/16/2015 3:53:48 AM

Mostrar una lista de cuentas de usuario de Office 365 que se crearon en un año específico

En el siguiente ejemplo, queremos obtener información sobre las cuentas de usuario de Office 365 que se crearon durante el año 2016.

Sintaxis del comando de PowerShell:

Get-MsolUser | Where {($_.WhenCreated).Year -eq 2016} | select UserPrincipalName,WhenCreated

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser | Where {($_.WhenCreated).Year -eq 2016} | select UserPrincipalName,WhenCreated

UserPrincipalName     WhenCreated           
-----------------     -----------           
Demi@o365info.com     12/13/2016 11:22:17 AM
Angelina@o365info.com 04/14/2016 6:39:46 AM 
George@o365info.com   09/24/2016 5:28:58 PM 
bradp@o365info.com    09/12/2016 6:01:09 AM 
James@o365info.com    10/23/2016 8:58:41 PM 
Chris@o365info.com    10/22/2016 3:31:34 AM 
Britney@o365info.com  10/16/2016 3:53:48 AM 
Nicki@o365info.com    10/25/2016 7:38:53 PM 
Bruno@o365info.com    10/22/2016 3:31:34 AM

Escenario 2#2: Obtener información sobre cuentas de usuario de Office 365 que se crearon antes de un rango de tiempo específico

En el escenario actual, necesitamos obtener información sobre las cuentas de usuario de Office 365 que se crearon antes de un intervalo de tiempo específico (en comparación con el escenario anterior en el que buscamos las cuentas de usuario que se crearon durante el rango de tiempo especificado).

Los rangos de tiempo que definimos son - dos meses a partir de la fecha actual.

La información que queremos obtener es información sobre las cuentas de usuario de Office 365 que se crearon antes de este rango de tiempo.

Por ejemplo, en caso de que la fecha actual sea 15/12/2016, los resultados serán - todas las cuentas de usuario de Office 365 que se crearon antes de la fecha - 01/10/2016.

Para poder cumplir con este requisito utilizamos el operador de PowerShell - le (Menor o igual a).

Mostrar una lista de cuentas de usuario de Office 365 que se crearon antes de hace X días

En el siguiente ejemplo, queremos obtener información sobre las cuentas de usuario de Office 365 que se crearon antes del intervalo de tiempo de “40 días” o más.

Sintaxis del comando de PowerShell:

Get-MsolUser | Where {$_.WhenCreated -le ((Get-Date).Adddays(-40))} | FT UserPrincipalName,WhenCreated

Ejemplo de salida de la consola PowerShell:

PS C:\>  Get-MsolUser | Where {$_.WhenCreated -le ((Get-Date).Adddays(-40))} | FT UserPrincipalName,WhenCreated

UserPrincipalName     WhenCreated           
-----------------     -----------           
Angelina@o365info.com 04/14/2016 6:39:46 AM 
George@o365info.com   09/24/2016 5:28:58 PM 
bradp@o365info.com    09/12/2016 6:01:09 AM 
James@o365info.com    10/23/2016 8:58:41 PM 
Chris@o365info.com    10/22/2016 3:31:34 AM 
Bruno@o365info.com    10/22/2016 3:31:34 AM

Mostrar una lista de cuentas de usuario de Office 365 que se crearon antes de hace X meses

En el siguiente ejemplo, queremos obtener información sobre las cuentas de usuario de Office 365 que se crearon antes del intervalo de tiempo de “2 meses” o más.

Sintaxis del comando de PowerShell:

Get-MsolUser | Where {$_.WhenCreated -Le ((Get-Date).AddMonths(-2))} | FT UserPrincipalName,WhenCreated

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser | Where {$_.WhenCreated -Le ((Get-Date).AddMonths(-2))} | FT UserPrincipalName,WhenCreated

UserPrincipalName     WhenCreated           
-----------------     -----------           
Angelina@o365info.com 04/14/2016 6:39:46 AM 
George@o365info.com   09/24/2016 5:28:58 PM 
bradp@o365info.com    09/12/2016 6:01:09 AM 
Chris@o365info.com    10/22/2016 3:31:34 AM 
Britney@o365info.com  10/16/2016 3:53:48 AM 
Bruno@o365info.com    10/22/2016 3:31:34 AM 

Mostrar usuarios de Office 365 cuyo nombre UPN incluye un nombre de dominio específico

La misión: mostrar una lista de cuentas de usuario de Office 365 cuyo sufijo UPN (nombre principal de usuario) incluye un nombre de dominio específico.

En el siguiente ejemplo, buscamos usuarios de Office 365 cuyo sufijo de nombre UPN incluya un nombre de dominio específico: o365info.com

Sintaxis del comando de PowerShell:

Get-MsolUser | Where {$_.UserPrincipalName -like "*@o365info.com"}

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser | Where {$_.UserPrincipalName -like "*@o365info.com"} 

UserPrincipalName               DisplayName                isLicensed
-----------------               -----------                ----------
Demi@o365info.com               Demi Lovato                True      
Angelina@o365info.com           Angelina Jolie             True      
George@o365info.com             George Michael             True      
bradp@o365info.com              Brad Pitt                  True      
Shared-MB04@o365info.com        Shared-MB04                False     
James@o365info.com              James Brown                True      
Chris@o365info.com              Chris Brown                True      
ADFS_SRV@o365info.com           ADFS_SRV                   False     
Britney@o365info.com            Britney Spears             True      
Nicki@o365info.com              Nicki Minaj                True      
Bruno@o365info.com              Bruno Mars                 True      

Mostrar usuarios eliminados temporalmente de Office 365

En el entorno de Azure Active Directory, cuando eliminamos la cuenta de usuario de Office 365, la cuenta de usuario no se elimina permanentemente, sino que se “envía” a la papelera de reciclaje de Azure Active Directory.

El objeto eliminado lo mantuvimos en Azure Active Directory por un período de 30 días.

En este escenario, solicitamos filtrar los resultados de la búsqueda, especificando que queremos obtener información solo sobre las cuentas de Office 365 que se eliminaron.

El término técnico para describir una cuenta de usuario eliminada es: Eliminado temporalmente.

Sintaxis del comando de PowerShell:

Get-MsolUser -ReturnDeletedUsers

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser -ReturnDeletedUsers 


UserPrincipalName                                          DisplayName                                   isLicensed
-----------------                                          -----------                                   ----------
HealthMailboxa1481f63784242b1ad466a8b7870f7dc@o365info.com HealthMailbox-STS-ex2013                      False     
HealthMailboxe8cb98bba86447c2a1c8b6e4ac5584ef@o365info.com HealthMailbox-STS-Mailbox-Database-1713880035 False     
Test100@o365info.com                                       Test100                                       True

Mostrar usuarios de Office 365 con un valor de ubicación de uso específico

Mostrar todos los usuarios de Office 365 que no tienen Ubicación de uso

Sintaxis del comando de PowerShell:

Get-MsolUser | Where {$_.UsageLocation -eq $Null} | Select UserPrincipalName,UsageLocation

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser | Where {$_.UsageLocation -eq $Null} | Select UserPrincipalName,UsageLocation 

UserPrincipalName                   UsageLocation
-----------------                   -------------
Shared-MB04@o365info.com
ADFS_SRV@o365info.com
Shared-MB05@o365info.com
ex2007@o365info.com
Shared-MB06@o365info.com
Selena@o365info.com

Mostrar todos los usuarios de Office 365 que tienen una ubicación de uso específica

En el siguiente ejemplo, deseamos obtener una lista de usuarios de Office 365 cuya ubicación de uso es - GB (Gran Bretaña).

Sintaxis del comando de PowerShell:

Get-MsolUser | Where {$_.UsageLocation -eq "gb"} | Select UserPrincipalName,UsageLocation

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser | Where {$_.UsageLocation -eq "gb"} | Select UserPrincipalName,UsageLocation 

UserPrincipalName     UsageLocation
-----------------     -------------
Billy@o365info.com    GB           
Beatles@o365pilot.com GB

Mostrar usuarios de Office 365 con una configuración de contraseña específica

En esta sección, revisamos cómo realizar una consulta de PowerShell que busca un "estado" específico de la contraseña de usuario de Office 365.

Mostrar todos los usuarios de Office 365, cuya contraseña está configurada para que nunca caduque

Sintaxis del comando de PowerShell:

Get-MsolUser | Where-Object {$_.PasswordNeverExpires -eq $True} | Select UserPrincipalName,PasswordNeverExpires

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser | Where-Object {$_.PasswordNeverExpires -eq $True} | Select UserPrincipalName,PasswordNeverExpires

UserPrincipalName          PasswordNeverExpires
-----------------          --------------------
Angelina@o365info.com      True
George@o365info.com        True
Chris@o365info.com         True
Britney@o365info.com       True
Nicki@o365info.com         True
Bruno@o365info.com         True
ex2007@o365info.com        True
Beyonce@o365info.com       True

Mostrar a los usuarios de Office 365 cuya contraseña está configurada para caducar

Sintaxis del comando de PowerShell:

Get-MsolUser | Where-Object {$_.PasswordNeverExpires -eq $False} | Select UserPrincipalName,PasswordNeverExpires

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser | Where-Object {$_.PasswordNeverExpires -eq $False} | Select UserPrincipalName,PasswordNeverExpires

UserPrincipalName              PasswordNeverExpires
-----------------              --------------------
Demi@o365info.com                             False
bradp@o365info.com                            False
Shared-MB04@o365info.com                      False
Shared-MB05@o365info.com                      False
Rihanna@o365info.com                          False
Shared-MB02@o365info.com                      False
room04@o365info.com                           False
room03@o365info.com                           False
EtaiArchive@o365info.com                      False

Mostrar los usuarios de Office 365 cuya contraseña se cambió en los últimos X meses

En la sección anterior, revisamos varias opciones que podemos usar para: realizar una búsqueda filtrada, buscar información sobre el "tiempo de creación" de cuentas de usuario específicas de Office 365.

Se puede utilizar la misma sintaxis de PowerShell para obtener información sobre la "última vez" que Office 365 cambia su contraseña.

La propiedad de usuario de Office 365 que consultamos es lastpasswordchangetimestamp

La búsqueda filtrada que creamos puede plantear dos preguntas principales:

Pregunta 1: Información sobre los usuarios de Office 365 que “cambian” su contraseña en los últimos X días, semana, etc.

El propósito de esta “pregunta” es obtener información sobre los usuarios de Office 365 que “realizan” cambios de contraseña en un rango de tiempo específico.

El operador de PowerShell que utilizamos para obtener información sobre este tipo de “pregunta” es -ge (mayor o igual que).

Pregunta 2: Información sobre los usuarios de Office 365 que no "cambiaron" su contraseña en los últimos X días, semana, etc.

El propósito de esta “pregunta” es obtener información sobre los usuarios de Office 365, cuál su contraseña caducará pronto, etc.

El operador de PowerShell que utilizamos para obtener información sobre este tipo de “pregunta” es - le (Menor o igual que).

Ejemplo 1: buscar usuarios de Office 365 cuya contraseña se actualizó en los últimos 2 meses

Sintaxis del comando de PowerShell:

Get-MsolUser | Where {$_.lastpasswordchangetimestamp -ge ((Get-Date).AddMonths(-2))} | FT UserPrincipalName,WhenCreated,lastpasswordchangetimestamp

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser | Where {$_.lastpasswordchangetimestamp -ge ((Get-Date).AddMonths(-2))} | FT UserPrincipalName,WhenCreated,lastpasswordchangetimestamp 

UserPrincipalName        WhenCreated            LastPasswordChangeTimestamp
-----------------        -----------            ---------------------------
Demi@o365info.com        12/13/2016 11:22:17 AM 12/13/2016 11:29:44 AM     
bradp@o365info.com       09/12/2016 6:01:09 AM  10/23/2016 7:43:31 AM      
Nicki@o365info.com       10/25/2016 7:38:53 PM  11/20/2016 2:57:29 PM      
Bruno@o365info.com       10/22/2016 3:31:34 AM  10/25/2016 6:26:43 PM      
Shared-MB05@o365info.com 11/28/2016 1:31:16 PM  11/28/2016 1:37:39 PM      
Adele@o365info.com       11/01/2016 3:50:05 PM  12/11/2016 6:59:38 PM      

Ejemplo 2: busque usuarios de Office 365 cuya contraseña no se haya actualizado en los últimos 2 meses

Sintaxis del comando de PowerShell:

Get-MsolUser | Where {$_.lastpasswordchangetimestamp -le ((Get-Date).AddMonths(-2))} | FT UserPrincipalName,WhenCreated,lastpasswordchangetimestamp

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser | Where {$_.lastpasswordchangetimestamp -le ((Get-Date).AddMonths(-2))} | FT UserPrincipalName,WhenCreated,lastpasswordchangetimestamp

UserPrincipalName     WhenCreated            LastPasswordChangeTimestamp
-----------------     -----------            ---------------------------
Angelina@o365info.com 04/14/2016 6:39:46 AM  09/15/2016 2:52:33 PM      
George@o365info.com   09/24/2016 5:28:58 PM  09/24/2016 5:26:38 PM      
Chris@o365info.com    10/22/2016 3:31:34 AM  10/22/2016 3:29:24 AM      
Britney@o365info.com  10/16/2016 3:53:48 AM  10/16/2016 3:51:57 AM      
Selena@o365info.com   10/17/2016 2:03:12 PM  10/17/2016 1:58:12 PM      
Grace@o365info.com    09/21/2016 9:59:02 AM  09/21/2016 9:56:07 AM

Mostrar usuarios de Office 365 con "detalles de usuario" específicos

En esta sección, me gustaría revisar un escenario en el que queremos realizar una consulta de PowerShell, buscando cuentas de usuario de Office 365 que tengan un "detalle de usuario" específico, como Departamento, Ciudad, País, etc.

1#2 - Uso de la opción “filtro” Get-MsolUser

El comando de PowerShell Get-MsolUser incluye "filtros integrados" que podemos agregar al comando Get-MsolUser.

En la siguiente captura de pantalla, podemos ver un ejemplo de los “filtros integrados” que se pueden agregar” al comando Get-MsolUser.

Los “filtros integrados” que podemos usar con una combinación de comandos Get-MsolUser son:

  • País
  • Estado
  • Ciudad
  • Departamento
  • Título

La desventaja de utilizar los "filtros integrados" es que hay una cantidad limitada de dichos filtros y, en caso de que queramos consultar sobre otra propiedad de cuenta de usuario de Office 365 adicional, no podemos confiar en estos filtros integrados. "

Se adjuntan algunos ejemplos de la sintaxis de PowerShell que debemos usar, en caso de que queramos usar los filtros integrados "con una combinación de comando Get-MsolUser.

Mostrar lista de usuarios de Office 365 cuyo país es igual a X

En el siguiente ejemplo, deseamos obtener una lista de usuarios de Office 365 cuyo País=EE.UU..

Sintaxis del comando de PowerShell:

Get-MsolUser -Country USA |FT UserPrincipalName,DisplayName,Country

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser -Country USA |FT UserPrincipalName,DisplayName,Country 

UserPrincipalName    DisplayName Country
-----------------    ----------- -------
Beyonce@o365info.com Beyonce     USA

Mostrar usuarios de Office 365 cuyo estado es igual a X

En el siguiente ejemplo, deseamos obtener una lista de usuarios de Office 365 cuyo Estado=Arizona.

Sintaxis del comando de PowerShell:

Get-MsolUser -State Arizona | FT UserPrincipalName,DisplayName,State

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser -State Arizona | FT UserPrincipalName,DisplayName,State

UserPrincipalName    DisplayName State
-----------------    ----------- -----------
Beyonce@o365info.com Beyonce      

Mostrar usuarios de Office 365 cuya ciudad es igual a X

En el siguiente ejemplo, deseamos obtener una lista de usuarios de Office 365 cuya Ciudad=Nueva York.

Sintaxis del comando de PowerShell:

Get-MsolUser -city "New York" | FT UserPrincipalName,DisplayName,city

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser -city "New York" | FT UserPrincipalName,DisplayName,city

UserPrincipalName    DisplayName City    
-----------------    ----------- ----    
Beyonce@o365info.com Beyonce     New York
Grace@o365info.com   Grace jones New York

Mostrar lista de usuarios de Office 365 cuyo Departamento es igual a X

En el siguiente ejemplo, deseamos obtener una lista de usuarios de Office 365 cuyo Departamento= Marketing.

Get-MsolUser -Department Marketing | FT UserPrincipalName,DisplayName,Department

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser -Department Marketing | FT UserPrincipalName,DisplayName,Department

UserPrincipalName     DisplayName    Department
-----------------     -----------    ----------
Craig@o365pilot.com   Craig David    Marketing 
Beyonce@o365info.com  Beyonce        Marketing 
Beatles@o365pilot.com Beatles the    Marketing 
Angelina@o365info.com Angelina Jolie Marketing1

Mostrar usuarios de Office 365 cuyo título sea igual a X

En el siguiente ejemplo, deseamos obtener una lista de usuarios de Office 365 cuyo Título=VIP.

Sintaxis del comando de PowerShell:

Get-MsolUser -Title vip | FT UserPrincipalName,DisplayName,Title

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser -Title vip | FT UserPrincipalName,DisplayName,Title

UserPrincipalName    DisplayName Title
-----------------    ----------- -----
Beyonce@o365info.com Beyonce     VIP  

2#2 - Uso de la declaración Where de PowerShell para filtrar el resultado de la búsqueda

En el siguiente apartado me gustaría repasar la otra opción que podemos utilizar, en caso de que necesitemos crear una búsqueda filtrada que “filtre” las cuentas de usuario de Office 365, con un “detalle de usuario” específico.

El filtro de búsqueda se implementa mediante la instrucción Dónde de PowerShell, que ya utilizamos en secciones anteriores del artículo actual.

La ventaja de la declaración Dónde de PowerShell es que podemos usar esta opción para crear una búsqueda de filtro que se relacione con "detalles de cuenta de usuario adicionales", que no se incluyen cuando se usan los filtros integrados "con una combinación de comandos Get-MsolUser.

Mostrar lista de usuarios de Office 365 cuyo país es igual a X

En el siguiente ejemplo, deseamos obtener una lista de usuarios de Office 365 cuyo País=EE.UU..

Sintaxis del comando de PowerShell:

Get-MsolUser | Where {$.Country -eq "USA"} | FT UserPrincipalName,DisplayName,Country

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser | Where {$.Country -eq "USA"} | FT UserPrincipalName,DisplayName,Country 

UserPrincipalName    DisplayName Country
-----------------    ----------- -------
Beyonce@o365info.com Beyonce     USA

Mostrar usuarios de Office 365 cuyo estado es igual a X

En el siguiente ejemplo, deseamos obtener una lista de usuarios de Office 365 cuyo Estado=Arizona.

Sintaxis del comando de PowerShell:

Get-MsolUser | Where {$.State -eq "Arizona"} | FT UserPrincipalName,DisplayName,State

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser | Where {$.State -eq "Arizona"} | FT UserPrincipalName,DisplayName,State

UserPrincipalName    DisplayName State
-----------------    ----------- -----------
Beyonce@o365info.com Beyonce   

Mostrar usuarios de Office 365 cuya ciudad es igual a X

En el siguiente ejemplo, deseamos obtener una lista de usuarios de Office 365 cuya Ciudad=Nueva York.

Sintaxis del comando de PowerShell:

Get-MsolUser | Where {$.city -eq "New York"} | FT UserPrincipalName,DisplayName,City

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser | Where {$.city -eq "New York"} | FT UserPrincipalName,DisplayName,City

UserPrincipalName    DisplayName City    
-----------------    ----------- ----    
Beyonce@o365info.com Beyonce     New York
Grace@o365info.com   Grace jones New York

Mostrar lista de usuarios de Office 365 cuyo Departamento es igual a X

En el siguiente ejemplo, deseamos obtener una lista de usuarios de Office 365 cuyo Departamento= Marketing.

Sintaxis del comando de PowerShell:

Get-MsolUser | Where {$.Department -eq "Marketing"} |FT UserPrincipalName,DisplayName,Department

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser | Where {$.Department -eq "Marketing"} |FT UserPrincipalName,DisplayName,Department

UserPrincipalName     DisplayName    Department
-----------------     -----------    ----------
Craig@o365pilot.com   Craig David    Marketing 
Beyonce@o365info.com  Beyonce        Marketing 
Beatles@o365pilot.com Beatles the    Marketing 
Angelina@o365info.com Angelina Jolie Marketing1

Mostrar usuarios de Office 365 cuyo título sea igual a X

En el siguiente ejemplo, deseamos obtener una lista de usuarios de Office 365 cuyo Título=VIP.

Sintaxis del comando de PowerShell:

Get-MsolUser | Where {$.title -eq "vip"} | FT UserPrincipalName,DisplayName,Title

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser | Where {$.title -eq "vip"} | FT UserPrincipalName,DisplayName,Title

UserPrincipalName    DisplayName Title
-----------------    ----------- -----
Beyonce@o365info.com Beyonce     VIP  

En la siguiente sección, me gustaría revisar ejemplos adicionales, en los que utilizamos la declaración Dónde de PowerShell para realizar una consulta sobre los detalles de la cuenta de usuario de Office 365.

Mostrar los usuarios de Office 365 cuyo número de teléfono de la oficina comienza con el prefijo X

En el siguiente ejemplo, deseamos obtener una lista de usuarios de Office 365, cuyo número de teléfono de la oficina comienza con el siguiente prefijo +1.

En este escenario, utilizamos el operador de PowerShell "me gusta" porque no buscamos una "coincidencia perfecta". "

En cambio, queremos obtener información sobre todos los usuarios de Office 365, que el número de teléfono de su oficina comienza con caracteres específicos "que buscamos (+1 en nuestro escenario), pero no sabemos qué el “resto” del número de teléfono de la oficina es.

Para definir el filtro de búsqueda, utilizamos la siguiente sintaxis: “+1*”

Sintaxis del comando de PowerShell:

Get-MsolUser | Where {$_.PhoneNumber -like "+1*"} |FT UserPrincipalName,DisplayName,PhoneNumber

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser | Where {$_.PhoneNumber -like "+1*"} |FT UserPrincipalName,DisplayName,PhoneNumber

UserPrincipalName     DisplayName PhoneNumber     
-----------------     ----------- -----------     
Beyonce@o365info.com  Beyonce     +16565656878    
Beatles@o365pilot.com Beatles the +178479487498479

Mostrar los usuarios de Office 365 cuyo departamento es igual a X + el número de teléfono de su oficina comienza con el prefijo X

En este ejemplo, creamos una consulta de PowerShell que "combina" dos caracteres diferentes.

Muestra una lista de usuarios de Office 365, cuyo Departamento=Marketing + número de teléfono de la oficina comienza con el siguiente prefijo +1.

Sintaxis del comando de PowerShell:

Get-MsolUser | Where {($_.Department -eq "Marketing") -and ($_.PhoneNumber -like "+1*")} | FT UserPrincipalName,DisplayName,Department,PhoneNumber

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser | Where {($_.Department -eq "Marketing") -and ($_.PhoneNumber -like "+1*")} | FT UserPrincipalName,DisplayName,Department,PhoneNumber

UserPrincipalName     DisplayName Department PhoneNumber     
-----------------     ----------- ---------- -----------     
Beyonce@o365info.com  Beyonce     Marketing  +16565656878    
Beatles@o365pilot.com Beatles the Marketing  +178479487498479

Grupos de usuarios de Office 365

Mostrar una lista de todos los grupos de usuarios de Office 365

Sintaxis del comando de PowerShell:

Get-MsolGroup

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolGroup

ObjectId                               DisplayName                                                              GroupType                                                                Description                                                             
--------                               -----------                                                              ---------                                                                -----------                                                             
402442d9-bf87-4f13-9a29-0cd79b10d89b   View-Only Organization Management                                        Security                                                                 Members of this management role group can view recipient and configur...
13cda959-ae4d-43e1-9095-207b17b780ad   Public Folder Management                                                 Security                                                                 Members of this management role group can manage public folders. Memb...
503bfc1a-19fa-4e9f-ace3-6bce1b7ac1e7   Exchange Servers                                                         Security                                                                 This group contains all the Exchange servers. This group shouldn't be...
649ebbdc-1965-4dc2-af1a-07edb351f19b   UM Management                                                            Security                                                                 Members of this management role group can manage Unified Messaging or...
87e3661f-4b51-4d78-85ba-079e338ff3fb   Delegated Setup                                                          Security                                                                 Members of this management role group have permissions to install and...
f5983045-486d-4585-a3f7-2434295ba55d   Server Management                                                        Security                                                                 Members of this management role group have permissions to manage all ...
6e0a2cb5-446f-4564-8b3d-db551f90be45   Exchange Windows Permissions                                             Security                                                                 This group contains Exchange servers that run Exchange cmdlets on beh...
cc4ee22e-6eb2-4866-88d4-ed6f69c6ffd5   Recipient Management                                                     Security                                                                 Members of this management role group have rights to create, manage, ...
3605cfea-0179-489e-b821-ddf6a24ba936   Records Management                                                       Security                                                                 Members of this management role group can configure compliance featur...
9b46a230-3511-4524-90d3-6d7f6a5d056f   Hygiene Management                                                       Security                                                                 Members of this management role group can manage Exchange anti-spam f...
3694e548-3309-4ba5-b248-2cca0dbbdc64   Organization Management                                                  Security                                                                 Members of this management role group have permissions to manage Exch...
a4894293-1f39-4f61-b61b-0691b3526d2b   Discovery Management                                                     Security                                                                 Members of this management role group can perform searches of mailbox...
70350ae9-91a1-4349-959a-88ea5f9673be   Exchange Install Domain Servers                                          Security                                                                 This group is used during Exchange setup and is not intended to be us...
9ac0234e-e422-4e33-a724-5a4f6a5405bf   Exchange Trusted Subsystem                                               Security                                                                 This group contains Exchange servers that run Exchange cmdlets on beh...
96fee0cf-0355-4b30-98bc-e4fd7e9e0b14   Server Management                                                        Security                                                                 Members of this management role group have permissions to manage all ...
ad18cc59-be88-462f-a4d7-746b5a6d5df7   View-Only Organization Management                                        Security                                                                 Members of this management role group can view recipient and configur...
7d3fa6f6-9619-46e6-aa2e-50bb21d3a48b   Discovery Management                                                     Security                                                                 Members of this management role group can perform searches of mailbox...
a954e55d-824c-4bc3-8dd0-7c928e72a0ca   Delegated Setup                                                          Security                                                                 Members of this management role group have permissions to install and...
6b4f2967-9480-4488-9db2-214d1a4c9bee   Organization Management                                                  Security                                                                 Members of this management role group have permissions to manage Exch...
744fe39b-65b4-41d8-bb4b-cafe9559d59d   Public Folder Management                                                 Security                                                                 Members of this management role group can manage public folders. Memb...
3566a9cb-4624-4f03-a668-0309901d6d3e   Exchange Windows Permissions                                             Security                                                                 This group contains Exchange servers that run Exchange cmdlets on beh...
27a9316e-8823-48a0-bcb5-ef02d260acba   Exchange Servers                                                         Security                                                                 This group contains all the Exchange servers. This group shouldn't be...
e6497af5-bfe2-474a-afa8-dd4532fa1d83   UM Management                                                            Security                                                                 Members of this management role group can manage Unified Messaging or...
dc1c3eb4-24ca-4989-821b-d307cece984c   Records Management                                                       Security                                                                 Members of this management role group can configure compliance featur...
e1f81ca5-eeac-4b42-8f57-05e7a1630bc1   Hygiene Management                                                       Security                                                                 Members of this management role group can manage Exchange anti-spam f...
0c2ad240-4327-4bd9-870d-9a329bd74c85   Recipient Management                                                     Security                                                                 Members of this management role group have rights to create, manage, ...
32640e8f-6de4-4d36-b09e-da0db33123f3   Exchange Trusted Subsystem                                               Security                                                                 This group contains Exchange servers that run Exchange cmdlets on beh...
9e8d94f9-9887-4d50-bb23-a51f10cf1d7f   Exchange Install Domain Servers                                          Security                                                                 This group is used during Exchange setup and is not intended to be us...
261e42b9-8798-416c-8656-0ac7d9344341   DnsUpdateProxy                                                           Security                                                                 DNS clients who are permitted to perform dynamic updates on behalf of...
c808c391-df6e-4145-9e8d-8fe2ddfd993f   ExchangeLegacyInterop                                                    Security                                                                 This group is for interoperability with Exchange 2003 servers within ...
0a21289c-1bb4-4780-a4a5-ad83679add07   DnsAdmins                                                                Security                                                                 DNS Administrators Group                                                
88c37cd1-864f-415d-a18f-ec7b979da573   Exchange All Hosted Organizations                                        Security                                                                 This group contains all the Exchange Hosted Organization Mailboxes gr...
1d101e1e-2821-4264-8d2a-8afd9f4757b9   Discovery Management                                                     Security                                                                 Members of this management role group can perform searches of mailbox...
4a95ed71-924c-4503-b228-eea30b2a9222   UM Management                                                            Security                                                                 Members of this management role group can manage Unified Messaging or...
9688fd5d-d427-4876-911d-96b0cf8cb599   Records Management                                                       Security                                                                 Members of this management role group can configure compliance featur...
5ea09528-0dba-4a08-9983-364c1728a18e   Recipient Management                                                     Security                                                                 Members of this management role group have rights to create, manage, ...
edf56ebf-a15e-4125-a82c-264a2dff129e   Server Management                                                        Security                                                                 Members of this management role group have permissions to manage all ...
a1e70fbc-4516-4d8c-98bf-dade43743378   View-Only Organization Management                                        Security                                                                 Members of this management role group can view recipient and configur...
e532c0f6-899d-4d85-9d52-c4f28b0c26ed   Exchange Public Folder Administrators                                    Security                                                                 Users in this group can manage Exchange public folder attributes in t...
e58de916-39aa-46ca-91d1-f44d6fe526e9   Hygiene Management                                                       Security                                                                 Members of this management role group can manage Exchange anti-spam f...
d9c21663-42c3-43a3-824f-5901ce76866d   Exchange View-Only Administrators                                        Security                                                                 Users in this group will have permission to read all Exchange configu...
eac84f53-d9cb-4f48-97ca-cbf4476b841c   Organization Management                                                  Security                                                                 Members of this management role group have permissions to manage Exch...
c5e0fdcd-c550-4b1b-a8f1-ce1b9f3a29f0   Exchange Servers                                                         Security                                                                 This group contains all the Exchange servers. This group should not b...
c1322bb7-7b01-42c2-8658-9737be7df7d4   Exchange Windows Permissions                                             Security                                                                 This group contains Exchange servers that run Exchange cmdlets on beh...
de10804d-3dca-4d97-8db6-db8321fb4060   Public Folder Management                                                 Security

Usuarios de Office 365 con errores

El término "error" se puede utilizar para describir muchos tipos diferentes de "error de usuario" en el entorno de Office 365.

Por ejemplo:

  • Error de aprovisionamiento causado por alguna falla al sincronizar los detalles del usuario de Office 365 (información de Azure Active Directory) con la infraestructura de Exchange Online.
  • Error de licencia de Office 365.
  • Restaurar error en la cuenta de usuario de Office 365.

Mostrar lista de cuentas de usuario de Office 365 con errores

En caso de que queramos obtener una lista de "cuenta de usuario de Office 365 con error", podemos usar un filtro "integrado" llamado HasErrorsOnly que se puede usar con los cmdlets de PowerShell: Get-MsolUser.

Sintaxis del comando de PowerShell:

Get-MsolUser -HasErrorsOnly | FL Alias,Errors

Mostrar lista de cuentas de usuario de Office 365 con errores + detalles sobre el error específico

Los tipos adicionales de comandos de PowerShell que podemos usar para obtener una lista de "cuenta de usuario de Office 365 con error" + detalles sobre el error específico son:

(Get-MsolUser -HasErrorsOnly).Errors.errordetail.objecterrors.errorrecord | FL

Obtener una lista de Office 365 con error de validación

Un tipo adicional de "errores de cuenta de usuario de Office 365" en un entorno de Office 365 se describe como errores de estado de validación.

Para obtener información sobre las cuentas de usuario de Office 365 con dichos errores, podemos usar una consulta de PowerShell, que busca usuarios de Office 365 con su valor ValidationStatus igual al error.

Get-MsolUser | Where-Object {$_.ValidationStatus -eq "Error"} | Select UserPrincipalName,ValidationStatus,Errors

Entorno de sincronización de directorios y usuarios de Office 365

En esta sección, revisamos cómo utilizar el comando de PowerShell que realizará una búsqueda filtrada para obtener varios tipos de información sobre los usuarios de Office 365 que se consideran "usuarios sincronizados".

El término "usuarios sincronizados" es relevante para un escenario en el que la organización utiliza Azure AD Connect para sincronizar los usuarios de Active Directory local con la "nube" (Azure Active Directory).

El Directorio de Office 365 puede incluir una "mezcla" de "cuenta de usuario nativa de Office 365" + "cuenta de usuario sincronizada".

Mostrar lista de cuentas de usuario de Office 365 que se consideran - Usuarios no sincronizados

En el siguiente ejemplo, deseamos obtener una lista de cuentas de usuario de Office 365 que son usuarios no sincronizados (en la nube).

Sintaxis del comando de PowerShell:

Get-MsolUser | Where-Object {$_.ImmutableID -eq $Null} | FT UserPrincipalName,ImmutableID

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser | Where-Object {$_.ImmutableID -eq $Null} | FT UserPrincipalName,ImmutableID

UserPrincipalName                  ImmutableId
-----------------                  -----------
Demi@o365info.com
Angelina@o365info.com
bradp@o365info.com
Shared-MB04@o365info.com
Rihanna@o365info.com
Beyonce@o365info.com
Depeche@o365pilot.com

Mostrar lista de cuentas de usuario de Office 365 que se consideran usuarios sincronizados

En el siguiente ejemplo, deseamos obtener una lista de cuentas de usuario de Office 365 que son usuarios sincronizados (sincronizados con Active Directory).

Sintaxis del comando de PowerShell:

Get-MsolUser | Where-Object {$_.ImmutableID -ne $Null} | FT UserPrincipalName,ImmutableID

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser | Where-Object {$_.ImmutableID -ne $Null} | FT UserPrincipalName,ImmutableID

UserPrincipalName                                            ImmutableId             
-----------------                                            -----------             
George@o365info.com                                          d5DCyKZ6I0anWTd5N2ocLA==
James@o365info.com                                           2e6Vj6A0xkqP4kmGoFFnuQ==
Chris@o365info.com                                           mywviNP7wU2EuZUcrckpiQ==
ADFS_SRV@o365info.com                                        JTDnaYiJhUCyxWWg2ipcBg==
Britney@o365info.com                                         9I0cw+JtL0WvT03I+0U6FQ==
Nicki@o365info.com                                           y5N8BdsrLEmOmxM2emS2Zg==
Bruno@o365info.com                                           Z5VGE63F50+xYixDHkvX1w==

Información sobre el tiempo de sincronización de “usuarios sincronizados”

En la sección actual, me gustaría revisar brevemente un ejemplo de una consulta de PowerShell, que podemos usar para encontrar información sobre un "proceso de sincronización" que se implementó en un rango de tiempo específico.

Mostrar una lista de usuarios sincronizados de Office 365, que se sincronizó en las últimas X horas

Sintaxis del comando de PowerShell:

Get-MsolUser | Where-Object {$_.LastDirSyncTime -ge ((Get-Date).AddHours(-10))} | Select UserPrincipalName,WhenCreated, LastDirSyncTime

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser | Where-Object {$_.LastDirSyncTime -ge ((Get-Date).AddHours(-10))} | Select UserPrincipalName,WhenCreated, LastDirSyncTime

UserPrincipalName   WhenCreated           LastDirSyncTime      
-----------------   -----------           ---------------      
Alicia@o365info.com 10/25/2016 7:44:17 PM 12/22/2016 5:13:47 AM

Mostrar una lista de usuarios sincronizados de Office 365, que no se sincronizaron en las últimas X horas

Sintaxis del comando de PowerShell:

Get-MsolUser | Where-Object {$_.LastDirSyncTime -ne ((Get-Date).AddHours(-10))} | Select UserPrincipalName,WhenCreated,LastDirSyncTime

Ejemplo de salida de la consola PowerShell:

PS C:\> Get-MsolUser | Where-Object {$_.LastDirSyncTime -ne ((Get-Date).AddHours(-10))} | Select UserPrincipalName,WhenCreated,LastDirSyncTime

UserPrincipalName                                               WhenCreated            LastDirSyncTime       
-----------------                                               -----------            ---------------       
Demi@o365info.com                                               12/13/2016 11:22:17 AM                       
Angelina@o365info.com                                           04/14/2016 6:39:46 AM                        
George@o365info.com                                             09/24/2016 5:28:58 PM  09/25/2016 5:30:26 AM 
bradp@o365info.com                                              09/12/2016 6:01:09 AM                        
Shared-MB04@o365info.com                                        11/28/2016 1:30:42 PM                        
James@o365info.com                                              10/23/2016 8:58:41 PM  10/23/2016 8:58:41 PM 
Chris@o365info.com                                              10/22/2016 3:31:34 AM  10/22/2016 3:31:33 AM 
Britney@o365info.com                                            10/16/2016 3:53:48 AM  12/11/2016 12:08:20 PM
Nicki@o365info.com                                              10/25/2016 7:38:53 PM  11/27/2016 12:17:19 PM

Sincronización de directorios y errores.

En un entorno de sincronización de directorios, existe una posibilidad razonable de que, debido a una configuración de usuario no válida, se cree un error de sincronización de directorios.

Sintaxis del comando de PowerShell:

Get-MsolUser | Where-Object {$_.DirSyncProvisioningErrors -eq $True} | FT UserPrincipalName,LastDirSyncTime,WhenCreated,DirSyncProvisioningErrors

El comando adicional de PowerShell que podemos usar para "obtener" errores relacionados con el entorno de sincronización de directorios es:

Get-MsolDirSyncProvisioningError

En el próximo artículo, analizaremos el uso de PowerShell para ver objetos de Exchange Online.

Artículos relacionados