Búsqueda de sitios web

Los comandos Powershell de Exchange Online más útiles que debes conocer


¡Bienvenido a nuestra publicación sobre los módulos de PowerShell de Exchange Online más útiles que debe conocer! Como administrador de Exchange Online, las formas más comunes de administrar su entorno Exchange son a través de los portales de administración o de PowerShell.

Administrar su entorno con los portales de administración a menudo puede ser lento y doloroso, especialmente cuando navega por varias cuentas.

El uso de PowerShell, aunque pueda parecer desalentador al principio, puede ayudarle a optimizar sus implementaciones, administración o incluso trabajos de reparación. Echemos un vistazo a los comandos de PowerShell de Exchange Online más útiles para ayudarle a administrar su entorno.

Conéctese a Exchange en línea

Antes de poder administrar Exchange Online con PowerShell, debe tener los cmdlets disponibles instalando el módulo Exchange Online.

  1. Abra PowerShell como administrador.

2. Ejecute el siguiente comando para instalar el módulo de administración de Exchange Online.

Install-Module -Name ExchangeOnlineManagement

Esto instalará el módulo para todos los usuarios de la estación de trabajo. Si desea realizar la instalación solo para el usuario actual, utilice el siguiente comando:

Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser

3. Ahora está listo para conectarse a Exchange Online. Ejecute el siguiente comando:

Connect-ExchangeOnline

Cuando aparezca la ventana de autenticación moderna de Microsoft 365, inicie sesión con sus credenciales.

Puede iniciar sesión con una cuenta de administrador global, que tendrá acceso a todos los comandos, o si está utilizando el control de acceso basado en roles (RBAC), consulte el siguiente enlace para conocer las asignaciones de roles y sus permisos. https://docs.microsoft.com/en-us/exchange/permissions-exo/permissions-exo

Ver la configuración del buzón

Una vez que esté conectado a Exchange Online en su sesión de PowerShell, ¡comienza la diversión! Ahora le mostraremos algunos comandos útiles para ver la configuración del buzón.

  • Vea una lista resumida de todos los buzones de correo de su organización:
Get-Mailbox -ResultSize unlimited
  • Si desea seleccionar atributos específicos para cada buzón, puede utilizar el parámetro 'seleccionar':
Get-Mailbox -ResultSize unlimited | select Name, PrimarySmtpAddress
  • Ver información sobre el buzón de un usuario específico:
Get-Mailbox -Identity *user*
  • Nuevamente, para seleccionar atributos específicos para el buzón del usuario, use el parámetro "seleccionar":
 Get-Mailbox -Identity *user* | select Name,
 PrimarySmtpAddress, EmailAddress
  • Ver permisos en un buzón específico.
#View all permissions on a specific mailbox
Get-MailboxPermission -Identity [email  | FL

#View a specific users permissions on a mailbox
Get-MailboxPermission -Identity [email  -User "daniel"

Editar la configuración del buzón

Ahora que sabemos cómo ver la configuración del buzón (que también se puede usar para validar los cambios que hagamos a continuación), echemos un vistazo a cómo podemos modificar la configuración del buzón.

El comando set-mailbox se utiliza en esta sección para realizar cambios en sus buzones.

  • Utilice el siguiente comando para agregar un alias de correo electrónico adicional a un buzón específico. A continuación agrego el alias '[correo electrónico protegido]' a la cuenta '[correo electrónico protegido]'.
#Add email address alias for single user
Set-Mailbox -Identity "[email " -EmailAddresses
@{add="[email "}
  • Agregue un alias de dominio adicional a todos los usuarios de su inquilino. A continuación agrego el alias de dominio de "ourcloudnetwork2.com" a todos los usuarios de mi inquilino.
#Add email address alias for all users
foreach($user in $users){
    Set-Mailbox $user.PrimarySmtpAddress -EmailAddresses @{add="$($user.Alias)@ourcloudnetwork2.com"}
}
  • Cambie la dirección SMTP principal de un usuario.
#Change users primary email address
Set-Mailbox -Identity [email  -WindowsEmailAddress [email  -MicrosoftOnlineServicesID [email 
  • Cambie el UPN (nombre principal de usuario) de un usuario. Se recomienda que si cambia el UPN de los usuarios, la dirección SMTP principal coincida.
#Change users username
Set-MsolUserPrincipalName -UserPrincipalName "Old UPN" -NewUserPrincipalName "New UPN"
  • Establezca el tamaño máximo de envío de mensajes para un solo usuario o para todos los usuarios.
#for a single user
Set-Mailbox -identity "[email " -MaxSendSize 2MB

#for all users
Get-Mailbox -ResultSize unlimited | Set-Mailbox -MaxSendSize 2MB
  • Habilite la auditoría de buzones para un buzón de usuario específico o para todos los buzones de usuario.
#for a single UserMailbox
Set-Mailbox -Identity "[email " -AuditEnabled $true

#for all users
Get-Mailbox -ResultSize Unlimited -Filter "RecipientTypeDetails -eq 'UserMailbox'" | Select PrimarySmtpAddress | ForEach {Set-Mailbox -Identity $_.PrimarySmtpAddress -AuditEnabled $true}

Generar informes de buzón

Al generar informes a través de PowerShell, es probable que los resultados deban guardarse en un formato tangible para que un tercero pueda procesarlos o manipularlos en algo visualmente más significativo.

Entonces, para comenzar, al generar resultados en PowerShell, podemos exportarlos a un archivo CSV. Este archivo CSV se puede utilizar en cualquier medio necesario. Simplemente hacemos esto agregando un PIPE después de nuestro comando y usando el cmdlet export-csv como se muestra a continuación. En scripts más detallados, el cmdlet export-csv deberá usarse de manera más estratégica.

#Export data to csv
 | Export-Csv results.csv
 
#To export without the first line containing type information.
 | Export-Csv results.csv -NoTypeInformation
  • Enumere todos los destinatarios, incluido el tipo de buzón, la dirección de correo electrónico principal y las direcciones de alias.
Get-Mailbox | Select-Object DisplayName,RecipientType, PrimarySmtpAddress, EmailAddresses | Export-Csv results.csv
  • Enumere todos los grupos de distribución con el nombre para mostrar, la dirección de correo electrónico principal y el propietario del grupo.
Get-DistributionGroup -ResultSize unlimited | select displayname, primarysmtpaddress, managedby | Export-csv alldistributiongroups.csv
  • Enumere todos los grupos de distribuciones y sus miembros.
$Result=@()
$groups = Get-DistributionGroup -ResultSize Unlimited
$totalmbx = $groups.Count
$i = 1 
$groups | ForEach-Object {
Write-Progress -activity "Processing $_.DisplayName" -status "$i out of $totalmbx completed"
$group = $_
Get-DistributionGroupMember -Identity $group.Name -ResultSize Unlimited | ForEach-Object {
$member = $_
$Result += New-Object PSObject -property @{ 
GroupName = $group.DisplayName
Member = $member.Name
EmailAddress = $member.PrimarySMTPAddress
RecipientType= $member.RecipientType
}}
$i++
}
$Result | Export-CSV "All-Distribution-Group-Members.csv" -NoTypeInformation -Encoding UTF8
  • Enumere todos los permisos de buzón para todos los buzones y tipos.
Get-Mailbox -resultsize unlimited | Get-MailboxPermission | Select Identity, User, Deny, AccessRights, IsInherited | Export-csv mailboxpermissions.csv

Delegar permisos de buzones y carpetas

Aquí le mostraremos cómo proporcionar permisos delegados a buzones y carpetas con PowerShell.

  • Proporcione al usuario 1 acceso completo al buzón del usuario 2. Otros permisos incluyen: SendAs y SendOnBehalf.
Add-MailboxPermission -Identity "user1" -User "user2" -AccessRights FullAccess -InheritanceType All
  • Proporcione al usuario 1 acceso completo a todos los buzones de correo de la organización.
Get-Mailbox -ResultSize unlimited -Filter "(RecipientTypeDetails -eq 'UserMailbox') -and (Alias -ne 'Admin')" | Add-MailboxPermission -User user1 -AccessRights FullAccess -InheritanceType All
  • Proporcione al usuario 1 acceso al calendario del usuario 2 con permisos de edición. Otros permisos incluyen: CreateItems, CreateSubfolders, DeleteAllItems, DeleteOwnedItems, EditAllItems, EditOwnedItems, FolderContact, FolderOwner, FolderVisible, ReadItems.
Add-MailboxFolderPermission -Identity [email :\calendar -user [email  -AccessRights Editor
  • Proporcione al usuario 1 acceso a la carpeta Finanzas en el buzón del usuario 2.
Add-MailboxFolderPermission -Identity [email :\Finance -User [email  -AccessRights Owner
  • Proporcione al usuario 1 los permisos SendAs para el buzón [protegido por correo electrónico]. El usuario 1 podrá enviar correos electrónicos como [correo electrónico protegido] pero no podrá ver el buzón.
Add-RecipientPermission "Marketing" -AccessRights SendAs -Trustee "User 1"

Gracias por tomarse el tiempo de leer cuáles son mis comandos de Exchange Online PowerShell más útiles para ayudarlo a administrar y mantener su entorno. Si crees que debería agregar algo más, ¡coméntalo a continuación!

Artículos relacionados