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:
- Uso de la “declaración Where” de PowerShell para crear búsquedas filtradas | Objetos de Office 365 y Exchange Online
- Utilice PowerShell para ver objetos de Office 365 (este artículo)
- 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-MsolUserLa herramienta principal que utilizamos para la tarea de realizar una "consulta de búsqueda filtrada" son los cmdlets de PowerShell (declaración):
Where-ObjectSi 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-MemberEjemplo 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 -UnlicensedUsersOnlySintaxis 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 -LicenseReconciliationNeededOnlyEjemplo 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 FalseUsuarios 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,BlockCredentialEjemplo 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 FalseMostrar 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,BlockCredentialOtra 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,BlockCredentialEjemplo 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 TrueMostrar 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.ObjectIdEjemplo 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.
- El objeto de PowerShell es una cuenta de usuario. (Representado por los cmdlets de PowerShell Get-MsolUser).
- La propiedad específica de la cuenta de usuario es WhenCreated.
- 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,WhenCreatedEjemplo 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,WhenCreatedEjemplo 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,WhenCreatedEjemplo 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 PMMostrar 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,WhenCreatedEjemplo 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 PMMostrar 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,WhenCreatedEjemplo 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,WhenCreatedMostrar 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,WhenCreatedEjemplo 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 PMMostrar 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,WhenCreatedEjemplo 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 AMMostrar 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,WhenCreatedEjemplo 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 AMEscenario 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,WhenCreatedEjemplo 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 AMMostrar 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,WhenCreatedEjemplo 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 -ReturnDeletedUsersEjemplo 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 TrueMostrar 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,UsageLocationEjemplo 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.comMostrar 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,UsageLocationEjemplo 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 GBMostrar 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,PasswordNeverExpiresEjemplo 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 TrueMostrar 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,PasswordNeverExpiresEjemplo 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 FalseMostrar 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,lastpasswordchangetimestampEjemplo 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,lastpasswordchangetimestampEjemplo 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 AMMostrar 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,CountryEjemplo de salida de la consola PowerShell:
PS C:\> Get-MsolUser -Country USA |FT UserPrincipalName,DisplayName,Country
UserPrincipalName DisplayName Country
----------------- ----------- -------
Beyonce@o365info.com Beyonce USAMostrar 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,StateEjemplo 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,cityEjemplo 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 YorkMostrar 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,DepartmentEjemplo 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 Marketing1Mostrar 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,TitleEjemplo 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,CountryEjemplo 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 USAMostrar 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,StateEjemplo 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,CityEjemplo 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 YorkMostrar 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,DepartmentEjemplo 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 Marketing1Mostrar 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,TitleEjemplo 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,PhoneNumberEjemplo 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 +178479487498479Mostrar 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,PhoneNumberEjemplo 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 +178479487498479Grupos de usuarios de Office 365
Mostrar una lista de todos los grupos de usuarios de Office 365
Sintaxis del comando de PowerShell:
Get-MsolGroupEjemplo 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 SecurityUsuarios 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,ErrorsMostrar 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 | FLObtener 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,ErrorsEntorno 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,ImmutableIDEjemplo 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.comMostrar 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,ImmutableIDEjemplo 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, LastDirSyncTimeEjemplo 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 AMMostrar 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,LastDirSyncTimeEjemplo 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 PMSincronizació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,DirSyncProvisioningErrorsEl comando adicional de PowerShell que podemos usar para "obtener" errores relacionados con el entorno de sincronización de directorios es:
Get-MsolDirSyncProvisioningErrorEn el próximo artículo, analizaremos el uso de PowerShell para ver objetos de Exchange Online.









