当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 您应该了解的最有用的 Exchange Online Powershell 命令

作者:精品下载站 日期:2024-12-14 06:43:07 浏览:13 分类:玩电脑

您应该了解的最有用的 Exchange Online Powershell 命令


欢迎阅读我们关于您应该了解的最有用的 Exchange Online PowerShell 模块的帖子!作为 Exchange Online 管理员,管理 Exchange 环境的最常见方法是通过管理门户或通过 PowerShell。

使用管理门户管理您的环境通常会非常缓慢且痛苦,尤其是在浏览多个帐户时。

使用 PowerShell 虽然乍一看可能令人畏惧,但可以帮助您简化部署、管理甚至补救工作。让我们看一下最有用的 Exchange Online PowerShell 命令,以帮助您管理环境。

连接到 Exchange Online

在能够使用 PowerShell 管理 Exchange Online 之前,您需要通过安装 Exchange Online 模块来获得可用的 cmdlet。

  1. 以管理员身份打开 PowerShell。

2. 运行以下命令安装Exchange Online 管理模块。

Install-Module -Name ExchangeOnlineManagement

这将为工作站上的所有用户安装该模块。如果您只想为当前用户安装,请使用以下命令:

Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser

3. 现在您已准备好连接到 Exchange Online。运行以下命令:

Connect-ExchangeOnline

当 Microsoft 365 现代身份验证窗口弹出时,使用您的凭据登录。

您可以使用全局管理员帐户登录,该帐户将有权访问所有命令,或者如果您使用基于角色的访问控制 (RBAC),请参阅以下链接了解角色分配及其权限。 https://docs.microsoft.com/en-us/exchange/permissions-exo/permissions-exo

查看邮箱设置

在 PowerShell 会话中连接到 Exchange Online 后,乐趣就开始了!我们现在将向您展示一些有用的命令来查看邮箱设置。

  • 查看组织中所有邮箱的摘要列表:
Get-Mailbox -ResultSize unlimited
  • 如果您想为每个邮箱选择特定属性,可以使用“select”参数:
Get-Mailbox -ResultSize unlimited | select Name, PrimarySmtpAddress
  • 查看有关特定用户邮箱的信息:
Get-Mailbox -Identity *user*
  • 同样,要为用户邮箱选择特定属性,请使用“select”参数:
 Get-Mailbox -Identity *user* | select Name,
 PrimarySmtpAddress, EmailAddress
  • 查看特定邮箱的权限。
#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"

编辑邮箱设置

现在我们知道如何查看邮箱设置(也可用于验证我们接下来所做的更改),让我们看看如何修改邮箱设置。

本节中使用 set-mailbox 命令来更改您的邮箱。

  • 使用以下命令将其他电子邮件别名添加到特定邮箱。下面我将别名“[email ”添加到帐户“[email ”。
#Add email address alias for single user
Set-Mailbox -Identity "[email " -EmailAddresses
@{add="[email "}
  • 为租户中的所有用户添加额外的域别名。下面我将“ourcloudnetwork2.com”的域别名添加到租户中的所有用户。
#Add email address alias for all users
foreach($user in $users){
    Set-Mailbox $user.PrimarySmtpAddress -EmailAddresses @{add="$($user.Alias)@ourcloudnetwork2.com"}
}
  • 更改用户的主 SMTP 地址。
#Change users primary email address
Set-Mailbox -Identity [email  -WindowsEmailAddress [email  -MicrosoftOnlineServicesID [email 
  • 更改用户 UPN(用户主体名称)。建议如果您更改用户 UPN,则主 SMTP 地址应匹配。
#Change users username
Set-MsolUserPrincipalName -UserPrincipalName "Old UPN" -NewUserPrincipalName "New UPN"
  • 设置单个用户或所有用户的最大消息发送大小。
#for a single user
Set-Mailbox -identity "[email " -MaxSendSize 2MB

#for all users
Get-Mailbox -ResultSize unlimited | Set-Mailbox -MaxSendSize 2MB
  • 为特定用户邮箱或所有用户邮箱启用邮箱审核。
#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}

生成邮箱报告

通过 PowerShell 生成报告时,结果可能需要以有形格式保存,以便第三方可以处理或处理成更具视觉意义的内容。

首先,在 PowerShell 中生成结果时,我们可以将结果导出到 CSV 文件中。然后可以以任何必要的方式使用该 CSV 文件。我们只需在命令后添加 PIPE 并使用如下所示的 export-csv cmdlet 即可完成此操作。在更详细的脚本中,需要更有策略地使用 export-csv cmdlet。

#Export data to csv
 | Export-Csv results.csv
 
#To export without the first line containing type information.
 | Export-Csv results.csv -NoTypeInformation
  • 列出所有收件人,包括邮箱类型、主电子邮件地址和任何别名地址。
Get-Mailbox | Select-Object DisplayName,RecipientType, PrimarySmtpAddress, EmailAddresses | Export-Csv results.csv
  • 列出所有通讯组及其显示名称、主电子邮件地址和组所有者。
Get-DistributionGroup -ResultSize unlimited | select displayname, primarysmtpaddress, managedby | Export-csv alldistributiongroups.csv
  • 列出所有分发组及其成员。
$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
  • 列出所有邮箱和类型的所有邮箱权限。
Get-Mailbox -resultsize unlimited | Get-MailboxPermission | Select Identity, User, Deny, AccessRights, IsInherited | Export-csv mailboxpermissions.csv

委派邮箱和文件夹权限

在这里,我们将向您展示如何使用 PowerShell 向邮箱和文件夹提供委派权限。

  • 为用户 1 提供对用户 2 邮箱的完全访问权限。其他权限包括:SendAs 和 SendOnBehalf。
Add-MailboxPermission -Identity "user1" -User "user2" -AccessRights FullAccess -InheritanceType All
  • 为用户 1 提供对组织中所有邮箱的完全访问权限。
Get-Mailbox -ResultSize unlimited -Filter "(RecipientTypeDetails -eq 'UserMailbox') -and (Alias -ne 'Admin')" | Add-MailboxPermission -User user1 -AccessRights FullAccess -InheritanceType All
  • 为用户 1 提供对用户 2 日历的编辑权限。其他权限包括:CreateItems、CreateSubfolders、DeleteAllItems、DeleteOwnedItems、EditAllItems、EditOwnedItems、FolderContact、FolderOwner、FolderVisible、ReadItems。
Add-MailboxFolderPermission -Identity [email :\calendar -user [email  -AccessRights Editor
  • 为用户 1 提供对用户 2 邮箱中 Finance 文件夹的访问权限。
Add-MailboxFolderPermission -Identity [email :\Finance -User [email  -AccessRights Owner
  • 向用户 1 提供对 [email 邮箱的 SendAs 权限。用户 1 将能够以 [电子邮件受保护] 的身份发送电子邮件,但无法查看邮箱。
Add-RecipientPermission "Marketing" -AccessRights SendAs -Trustee "User 1"

感谢您花时间阅读我的最有用的 Exchange Online PowerShell 命令,以帮助您管理和维护环境。如果您认为我还应该添加其他内容,请在下面评论!

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯