Administrar grupo de distribución usando PowerShell en Office 365 | ver y exportar información sobre el grupo de distribución | Parte 4#5
El artículo actual es el cuarto de una serie de cinco artículos, que está dedicado al tema de la administración del grupo de distribución en un entorno basado en Office 365 y Exchange Online mediante PowerShell. El artículo incluye dos secciones principales:
- Tareas de administración relacionadas con la necesidad de ver información sobre la configuración del grupo de distribución, los miembros del grupo de distribución, etc.
- Tareas de gestión que se relacionan con la necesidad de exportar información sobre el Grupo de Distribución.
Administrar grupo de distribución usando PowerShell en Office 365 | Serie de artículos
- Administrar grupo de distribución usando PowerShell en Office 365 | Referencia de comandos de PowerShell | Parte 1#5
- Administrar grupo de distribución usando PowerShell en Office 365 | Creación de un nuevo grupo de distribución y gestión de grupos de distribución existentes | Parte 2#5
- Administrar grupo de distribución usando PowerShell en Office 365 | Agregar miembros al grupo de distribución existente | Parte 3#5
- Administrar grupo de distribución usando PowerShell en Office 365 | ver y exportar información sobre el grupo de distribución | Parte 4#5
- Administrar grupo de distribución usando PowerShell en Office 365 | Eliminar grupo de distribución y miembros | Convertir grupo de distribución | Parte 5#5
Ver información sobre grupos de distribución
Ver una lista de todos los grupos de distribución existentes
Para obtener una lista de todos los grupos de distribución existentes, usamos el comando de PowerShell:
Mostrar la lista de todos los grupos de distribución + detalles
Ejemplo de comando de PowerShell:
Get-DistributionGroupMostrar miembros del grupo de distribución
Para obtener una lista de todos los miembros del grupo de distribución, utilizamos el siguiente comando de PowerShell:
Mostrar miembros del grupo de distribución
Sintaxis del comando PowerShell
Get-DistributionGroupMember "<Distribution Group Name>"Ejemplo de comando de PowerShell:
Get-DistributionGroupMember "Sales France"En el siguiente ejemplo, "ampliamos" la información que obtenemos del comando básico de PowerShell: Get-DistributionGroupMember.
En este ejemplo, le pedimos a PowerShell que ordene el resultado por la propiedad "DisplayName" y, además, muestre las siguientes propiedades de los miembros: DisplayName, Alias y Departamento.
Ejemplo de comando de PowerShell:
Get-DistributionGroupMember IT | Sort -Property DisplayName | Select DisplayName, Alias, DepartmentCuente el número de miembros del grupo de distribución
En caso de que necesitemos contar la cantidad de miembros en un grupo de distribución específico, use el siguiente comando de PowerShell.
Ejemplo de comando de PowerShell:
(Get-DistributionGroupMember "IT").CountMostrar lista de grupos de distribución con sufijo de nombre de dominio de correo electrónico específico
En el siguiente ejemplo, queremos obtener información sobre el grupo de distribución de que su dirección de correo electrónico incluye un sufijo de nombre de dominio específico.
Mostrar lista de grupos de distribución con dominio de correo electrónico específico
Sintaxis del comando de PowerShell:
Get-DistributionGroup | Where {$_.emailaddresses -like <"*Domain Name*">} | FT -Property Name,Alias,EmailAddresses -AutosizeEn nuestro ejemplo específico, buscamos un grupo de distribución cuya dirección de correo electrónico incluya el nombre de dominio: o365info.com.
Ejemplo de comando de PowerShell:
Get-DistributionGroup | Where {$_.emailaddresses -like "*o365info.com*"} | FT -Property Name,Alias,EmailAddresses -AutosizeMostrar información sobre el grupo de distribución que se actualizó antes o después de un intervalo de fechas específico
En algún escenario, necesitamos obtener una lista de grupos de distribución que se crearon en una fecha \hora específica o un grupo de distribución que se creó en un rango de tiempo específico.
Por ejemplo:
- Escenario 1: queremos agregar un usuario a todos los NUEVOS grupos de distribución, que se crearon en un rango de tiempo específico (las últimas dos semanas).
- Escenario 2: queremos agregar un usuario a todos los grupos de distribución que se crearon en un rango de tiempo específico: todo el grupo de distribución que se creó antes de las últimas dos semanas.
Para poder “saber” cuándo se creó un grupo de distribución específico, podemos consultar la propiedad del grupo de distribución - “WhenCreated”.
Para poder encontrar el grupo de distribución que "pertenece" al rango de tiempo específico, como las últimas dos semanas o el tiempo anterior a las dos semanas actuales, debemos utilizar los operadores lógicos de PowerShell.
En nuestro ejemplo, creamos dos consultas de PowerShell que utilizarán los siguientes operadores: ge y le, y obtendrán la siguiente información:
- Obtenga una lista de grupos de distribución que se crearon en las últimas 2 semanas (durante las últimas dos semanas). Para ello utilizamos el operador de PowerShell - ge (mayor o igual que).
- Obtenga una lista de grupos de distribución creados antes de las últimas 2 semanas. Para ello utilizamos el operador de PowerShell - Le (Menor o igual que).
Para poder definir el “rango de tiempo” de dos semanas, usaremos los cmdlets Get-Date de PowerShell
, de la siguiente manera: (Get-Date).Adddays(-14).
Obtenga una lista de grupos de distribución creados en las últimas 2 semanas
Ejemplo de comando de PowerShell:
Get-DistributionGroup | Where {$_.WhenCreated -ge ((Get-Date).Adddays(-14))} | FT DisplayName,WhenCreatedObtenga una lista de grupos de distribución creados antes de las últimas 2 semanas.
Ejemplo de comando de PowerShell:
Get-DistributionGroup | Where {$_.WhenCreated -le ((Get-Date). Adddays (-14))} | FT DisplayName,WhenCreatedMostrar todos los grupos de distribución cuyo propietario (administrado por) es el usuario X
En este ejemplo, queremos obtener una lista de todos los grupos de distribución administrados por un usuario específico.
Obtenga una lista de todos los grupos de distribución administrados por Adele
Ejemplo de comando de PowerShell:
Get-DistributionGroup | Where {$_.ManagedBy -like “*adele*”} | FT DisplayName,ManagedByMostrar todos los grupos de distribución que tienen un moderador
En este caso, queremos obtener información sobre los Grupos de Distribución que tienen un moderador.
Para ello podemos utilizar un “comando PowerShell simple” o un comando PowerShell más sofisticado.
En el siguiente ejemplo, solicitamos a PowerShell obtener una lista de todos los grupos de distribución existentes y presentar las siguientes propiedades: nombre para mostrar + la propiedad Moderado por.
La información que se presentará incluirá Grupo de Distribución con moderador y también sin moderador.
Ejemplo de comando de PowerShell:
Get-DistributionGroup | FT DisplayName,ModeratedByEn caso de que queramos implementar una “búsqueda más exacta” que muestre solo el Grupo de distribución que tiene un moderador, podemos usar el siguiente comando de PowerShell:
Ejemplo de comando de PowerShell:
Get-DistributionGroup | Where {$_.ModeratedBy -notlike “$null”} | FT DisplayName,ManagedByMostrar todos los grupos de distribución que están sincronizados desde Active Directory local
En este ejemplo, queremos obtener una lista de todos los grupos de distribución que se consideran grupos de distribución sincronizados.
El término grupo de distribución sincronizado se relaciona con grupos de distribución que se crearon en Active Directory local y se sincronizaron con Exchange Online mediante el servidor de sincronización de directorios.
Ejemplo de comando de PowerShell:
Get-DistributionGroup | Where {$_.IsDirSynced -eq $true} | FT DisplayName, IsDirSyncedMostrar información del grupo de distribución sobre la gestión de entregas
El término "gestión de entrega" describe la configuración relacionada con los remitentes "permitidos".
Los remitentes se dividen en 2 grupos:
- Remitentes internos (destinatarios de la organización) que se describen como destinatarios autenticados.
- Remitentes externos (destinatarios que no pertenecen a la organización) que se describen como destinatarios no autenticados.
En Office 365, la configuración predeterminada para un nuevo grupo de distribución es "Solo remitentes dentro de mi organización". "
En otras palabras, de forma predeterminada, los destinatarios externos no pueden enviar un mensaje de correo electrónico al grupo de distribución de Exchange Online.
Mostrar grupos de distribución cuya gestión de entrega permite a destinatarios externos
enviar correo electrónico
En este ejemplo, queremos obtener una lista de todos los grupos de distribución que pueden aceptar correo electrónico de destinatarios externos.
El parámetro que define esta opción es - RequireSenderAuthenticationEnabled
En caso de que el valor del parámetro - RequireSenderAuthenticationEnabled sea - $True, el significado es que el grupo de distribución aceptará correo electrónico de destinatarios externos (que no sean de la organización).
Mostrar grupos de distribución que aceptan correo electrónico de destinatarios externos
Ejemplo de comando de PowerShell:
Get-DistributionGroup | Where {$_.RequireSenderAuthenticationEnabled -eq $True} | FT DisplayName,RequireSenderAuthenticationEnabledMostrar grupos de distribución cuya gestión de entrega no permite que destinatarios externos envíen correos electrónicos
En este ejemplo, queremos obtener una lista de todos los grupos de distribución que no pueden aceptar correo electrónico de destinatarios externos.
El parámetro que define esta opción es - RequireSenderAuthenticationEnabled
En caso de que el valor del parámetro - RequireSenderAuthenticationEnabled sea - $True, el significado es que el grupo de distribución aceptará correo electrónico de destinatarios externos (que no sean de la organización).
Mostrar grupos de distribución que no aceptan correo electrónico de destinatarios externos
Ejemplo de comando de PowerShell:
Get-DistributionGroup | Where {$_.RequireSenderAuthenticationEnabled -eq $False } | FT DisplayName,RequireSenderAuthenticationEnabledObtener información sobre la membresía del grupo de distribución de un usuario específico.
En este escenario, queremos obtener información sobre el grupo de distribución,
del cual es miembro un usuario específico.
Ejemplo de comando de PowerShell:
$User = read-host “User Name"
$UserDName = (Get-Mailbox $User).name
"The User " + $User + " is a member of the following Distribution Groups:"
ForEach ($DistributionGroup in Get-Distributiongroup -resultsize unlimited)
{
if ((Get-Distributiongroupmember $DistributionGroup.identity | select -expand name) -contains $UserDName)
{$DistributionGroup.name}
}Exportar información sobre grupos de distribución
La sección que describo "exportar información sobre el grupo de distribución" puede considerarse como una "derivada" de la sección en la que utilizamos los cmdlets de PowerShell "Get-DistributionGroup" o "Get-DistributionGroupMember" para obtener información sobre la infraestructura del grupo de distribución ( obtener una lista de los grupos de distribución existentes, obtener información sobre la membresía del grupo, etc.).
Toda la información que podemos mostrar en la consola PowerShell también se puede “exportar” a varios tipos de formatos de archivo.
Formatos de archivo y cmdlets de PowerShell de exportación
PowerShell admite la opción de exportar la salida del comando PowerShell a los siguientes formatos de archivo: texto, CSV, HTML y XML.
Para poder exportar la información requerida necesitamos decirle a PowerShell cuál es el “formato de archivo” que queremos usar.
Además de los cmdlets de PowerShell que definen el formato de archivo específico, PowerShell proporciona un "comando de exportación" dedicado para cada uno de los tipos de archivo y un parámetro único para un tipo de archivo específico.
Por ejemplo, cuando deseamos exportar la salida del comando PowerShell a un formato de archivo CSV (valores separados por comas), podemos agregar parámetros adicionales como:
- -NoTypeInformation: esta opción evita que PowerShell agregue información innecesaria al archivo CSV
- -Codificación UTF8: en caso de que objetos como usuarios o buzones de correo incluyan caracteres que no estén en inglés, podemos agregar este "parámetro de formato" para habilitar la exportación de información de PowerShell que incluya caracteres que no estén en inglés.
El parámetro "ruta"
Cuando queramos exportar información de la salida de un comando de PowerShell a un archivo, necesitaremos proporcionar a PowerShell la ruta exacta y el nombre del archivo.
El comando de PowerShell que exporta los datos utilizará la "información de ruta" para crear un nuevo archivo en la ruta especificada.
Es importante mencionar que cuando proporcionamos una ruta, como C:\Temp, el comando de PowerShell "excepto" que esta ruta ya está creada. En otras palabras, de forma predeterminada, el comando de PowerShell no “creará para nosotros” una carpeta específica que se especificó en la ruta.
Ejemplo de sintaxis de PowerShell para exportar información a varios tipos de archivos
La siguiente sección incluye una demostración de cómo exportar la salida del comando PowerShell a tres tipos de formatos de archivo.
Para demostrar los distintos formatos de archivo, utilizamos el comando PowerShell-
Get-DistributionGroup que, como su nombre lo indica, obtiene información sobre el grupo de distribución existente y, de forma predeterminada, muestra la información en la consola de PowerShell.
En nuestro escenario, deseamos cambiar este comportamiento predeterminado y, en lugar de mostrar la información en la consola de PowerShell, queremos "redirigir" la salida del comando de PowerShell a un "Archivo". "
Exportar información a un archivo de texto. Ejemplo de comando de PowerShell:
Get-DistributionGroup | Out-File c:\temp\DistributionGroups.TXTExportar información a un comando CSV FilePowerShell:
Get-DistributionGroup | Export-CSV c:\temp\DistributionGroups.CSV -NoTypeInformation -Encoding UTF8Exportar información a un archivo HTML
Ejemplo de comando de PowerShell:
Get-DistributionGroup | ConvertTo-Html c:\temp\DistributionGroups.HTMLLa tarea de exportar información sobre los miembros del grupo de distribución a un archivo podría parecer una tarea simple, pero requirió cierta "manipulación" de la sintaxis de PowerShell que usamos.
Un ejemplo de sintaxis de comandos de PowerShell que podemos usar para exportar La información sobre los miembros del grupo de distribución en un archivo SCV podría ser:
Exportar información sobre los miembros del grupo de distribución a un archivo csv
Ejemplo de comando de PowerShell:
$Groups = Get-DistributionGroup -ResultSize Unlimited
Foreach ($Group in $Groups)
{
$Members = Get-DistributionGroupMember -Identity $($Group.PrimarySmtpAddress)
Foreach ($Member in $Members)
{
Out-File -FilePath c:\temp\DistributionGroupMember.csv -InputObject "$($Group.DisplayName),$($Member.DisplayName),$($Member.PrimarySMTPAddress)" -Encoding UTF8 -append
}
}El siguiente artículo de la serie de artículos actual
- Administrar grupo de distribución usando PowerShell en Office 365 | Eliminar grupo de distribución y miembros | Convertir grupo de distribución | Parte 5#5
