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.
- 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 CurrentUser3. Ahora está listo para conectarse a Exchange Online. Ejecute el siguiente comando:
Connect-ExchangeOnlineCuando 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.csvDelegar 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!