Hola,
Continuando con este tema, he realizado la búsqueda y encontré información para generar un script para obtener la información de las listas de distribución y sus miembros, sin embargo ejecuto el script pero no obtengo la información.
Este es el script:
#Parametros de Entrada
#Este script acepta 2 parametros opcionales como son el login y la contrasena del usuario administrador que utilizaremos para conectarnos a nuestro tenant
Param(
[Parameter(Position=0, Mandatory=$false, ValueFromPipeline=$true)]
[string] $Office365Username,
[Parameter(Position=1, Mandatory=$false, ValueFromPipeline=$true)]
[string] $Office365Password
)
#En esta variable pondremos la ruta o el nombre del fichero CSV resultante de la consulta
#En el caso de no especificar una ruta el fichero se genera en la misma ruta donde se encuentre este script
$OutputFile = "Listado_Miembros_Grupos.csv"
$arrDLMembers = @{}
#Eliminamos las sesiones existentes de PowerShell en caso de que existan
Get-PSSession | Remove-PSSession
#Sino hemos pasado por parametros las credenciales para conectar al tenant se nos requira
if (([string]::IsNullOrEmpty($Office365Username) -eq $false) -and ([string]::IsNullOrEmpty($Office365Password) -eq $false))
{
$SecureOffice365Password = ConvertTo-SecureString -AsPlainText $Office365Password -Force
$Office365Credentials = New-Object System.Management.Automation.PSCredential $Office365Username, $SecureOffice365Password
}
else
{
$Office365Credentials = Get-Credential
}
#Creamos la sesion con nuestro Tenant
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Office365credentials -Authentication Basic –AllowRedirection
#Importamos la sesion
Import-PSSession $Session -AllowClobber | Out-Null
#Preparamos las cabeceras de nuestro fichero CSV
Out-File -FilePath $OutputFile -InputObject "Distribution Group DisplayName,Distribution Group Email,Member DisplayName, Member Email, Member Type" -Encoding UTF8
#Obtenemos todos los grupos de distribucion existente en Office 365
$objDistributionGroups = Get-DistributionGroup -ResultSize Unlimited
#Recorremos uno a uno cada grupo para ir obteniendo los usuarios
Foreach ($objDistributionGroup in $objDistributionGroups)
{
write-host "Procesando $($objDistributionGroup.DisplayName)..."
#Obtenemos los miembros del grupo
$objDGMembers = Get-DistributionGroupMember -Identity $($objDistributionGroup.PrimarySmtpAddress)
write-host "Encontrados $($objDGMembers.Count) miembros..."
#Recorremos cada uno de los miembros para obtener su informacion
Foreach ($objMember in $objDGMembers)
{
Out-File -FilePath $OutputFile -InputObject "$($objDistributionGroup.DisplayName),$($objDistributionGroup.PrimarySMTPAddress),$($objMember.DisplayName),$($objMember.PrimarySMTPAddress),$($objMember.RecipientType)" -Encoding UTF8 -append
write-host "`t$($objDistributionGroup.DisplayName),$($objDistributionGroup.PrimarySMTPAddress),$($objMember.DisplayName),$($objMember.PrimarySMTPAddress),$($objMember.RecipientType)"
}
}
#Cerramos la conexion con el tenant de Office 365
Get-PSSession | Remove-PSSession
Sin embargo no me muestra algún error pero tampoco obtengo el archivo.
Saludos!