Búsqueda de sitios web

Agregar usuarios a una política de retención de Office 365 con PowerShell


Para preservar su contenido de Office 365, puede usar la Política de retención que puede crear en el Centro de seguridad y cumplimiento. Un paso importante es agregar usuarios a la política. Esto se puede hacer fácilmente con PowerShell. De esta manera, también podemos agregar automáticamente nuevos usuarios a una política de retención existente ejecutando un script una vez al día o a la semana.

Antes de agregar la política de retención, primero queremos encontrar todos los usuarios que aún no la tienen. Entonces obtendremos una lista de todos los usuarios a través de Exchange y les aplicaremos una política.

Al usar PowerShell, podemos obtener una lista de todos sus buzones de correo de Exchange y obtener una lista de todas las ubicaciones (usuarios) de Exchange agregadas actualmente en la política de retención. Esos dos comparados darán como resultado una lista de buzones de correo faltantes que podemos agregar a la política de retención con Powershell.

Nota de importación: primero conéctese a Exchange Online y luego al Centro de seguridad y cumplimiento. De lo contrario, obtendrá un resultado diferente al del comando get-recipient.

Conexión a Office 365 Exchange en línea

Conéctese a Exchange Online con el siguiente código o este script de conector en mi Galería Microsoft Technet

$cred = get-credential $ExchSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $cred -Authentication Basic -AllowRedirection Import-PSSession $ExchSession

Conexión al Centro de seguridad y cumplimiento de Office 365 mediante PowerShell remoto

Puede conectarse al Centro de seguridad y cumplimiento con el siguiente comando o este script

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.compliance.protection.outlook.com/powershell-liveid/ -Credential $cred -Authentication Basic -AllowRedirection

Import-PSSession $Session

Obtener una lista de todos sus usuarios con un buzón

Primero comenzamos creando una lista de todos los buzones de correo que queremos conservar. Con Get-Recipient obtenemos todos los objetos destinatarios existentes en su organización. Para comparar la lista, solo necesitamos PrimarySmtpAddress. Al usar el cmd de selección podemos limitar los resultados y seleccionar solo los campos que necesitamos.

Asegúrese de ordenar los resultados para que podamos compararlos más tarde.

$ExchUsers = Get-Recipient -ResultSize Unlimited -RecipientType UserMailbox | select PrimarySmtpAddress | sort-object PrimarySmtpAddress

Si está utilizando SharePoint o OneDrive en su organización, probablemente tenga algunos usuarios externos enumerados en Office 365. (Compruébelo en el Centro de administración de Office 365 > Usuarios invitados). Quiere excluir a esos usuarios de los resultados. Podemos hacer esto basándonos en el Alias y filtrar todos los resultados que no contengan la marca EXT: $_.Alias -notlike '#EXT#'.

También tenía algunas direcciones .onmicrosoft.com que no era necesario agregar, exclúyalas con $_.primarySmtpAddress -notlike '*.onmicrosoft.com'

Con ambas cláusulas donde se obtiene el siguiente comando:

$ExchUsers = Get-Recipient -ResultSize Unlimited -RecipientType UserMailbox | where {( $_.Alias -notlike '#EXT#' ) -and ( $_.primarySmtpAddress -notlike '*.onmicrosoft.com' )} | select PrimarySmtpAddress | sort-object PrimarySmtpAddress

Obtenga todos los buzones de correo actuales en la política de retención

Para obtener todos los usuarios que hay actualmente en la política de retención, primero tendremos que buscar el nombre o GUID de la política. Ejecute el siguiente comando para obtener las políticas con los nombres y el GUID. El GUID no es necesario, pero puede ser más fácil usarlo que el nombre en el script.

Get-RetentionCompliancePolicy | select name,guid

Esto devolverá una tabla con todas las Políticas de retención en su inquilino de Office 365.

Get-RetentionCompliancePolicy -Identity <policy-name or guid> -DistributionDetail | Select -ExpandProperty ExchangeLocation

Para obtener todos los buzones que ya tienen asignada una política de retención, debemos expandir ExchangeLocation. Esto nos dará una lista de todos los objetos con sus nombres, dirección de correo electrónico, tipo de recurso, etc. Para comparar las listas, ordenaremos los resultados según el nombre que en realidad es la dirección de correo electrónico:

$SecUsers = Get-RetentionCompliancePolicy -Identity <policy-name or guid> -DistributionDetail | Select -ExpandProperty ExchangeLocation | foreach {$_.Name} | sort-object $_.Name

Comparando los dos y sumando los que faltan.

Todo queda para comparar con dos matrices y agregar los usuarios faltantes a la política de retención:

$notInSec = $exchUsers.primarySmtpAddress | Where {$secUsers -NotContains $_} foreach ($user in $notInSec){ Set-RetentionCompliancePolicy -Identity "<PolicyName>" -AddExchangeLocation $user }

Artículos relacionados