[玩转系统] 使用 PowerShell 管理邮箱文件夹权限
作者:精品下载站 日期:2024-12-14 05:52:39 浏览:15 分类:玩电脑
使用 PowerShell 管理邮箱文件夹权限
当您与其他用户共享邮箱文件夹时,您可以决定他们将获得哪些访问权限。管理员可以在 PowerShell 中为单个和批量用户获取、添加、设置和删除文件夹权限。在本文中,您将了解如何使用 Exchange Online PowerShell 管理邮箱文件夹权限。
邮箱文件夹权限
共享邮箱文件夹使其他用户能够访问特定的 Outlook 文件夹,例如日历、联系人和任务。
要与其他用户共享邮箱文件夹,您需要决定:
- 您想要与其共享邮箱文件夹的用户(或组)
- 您要启用的权限级别
默认情况下,用户有权在日历文件夹中查看其他用户的空闲或忙碌时间。如果您希望允许其他用户获取有关会议的更多信息,您可以更改默认权限并让其他用户查看有关会议的其他信息,例如会议主题和地点。
每个用户都可以与单个或多个用户共享其邮箱文件夹以及 Outlook 或 OWA 中的权限级别。您需要向每个用户发送邀请并等待用户接受。为了避免任何错误配置,使用 PowerShell 更快、更容易。
角色和权限列表
-AccessRights 参数还指定具有以下角色的用户的权限。请参阅下面的角色列表,以及您向邮箱文件夹分配访问权限时所附带的权限。
这两个附加角色仅适用于日历文件夹。
LimitedDetails查看包含主题和位置的可用性数据(空闲/忙碌时间、主题、位置)
AvailabilityOnly仅查看可用性数据(空闲/忙碌时间)
连接到 Exchange Online
为了能够运行 PowerShell 命令,您必须连接到 Exchange Online PowerShell。以管理员身份打开 Windows PowerShell,运行以下 cmdlet,然后使用管理员凭据登录。
Connect-ExchangeOnline
1.为日历或通讯录文件夹添加文件夹权限
只有获得许可的邮箱才能与其他用户或组共享其文件夹。在我们的示例中,我们希望授予用户发布编辑者访问其他用户文件夹的权限。
我们将使用 Add-MailboxFolderPermission PowerShell cmdlet 为邮箱中的用户添加文件夹级别权限。
邮箱文件夹权限命令的基本结构使用以下 PowerShell 语法。
Add-MailboxFolderPermission -Identity "[email protected]:\Calendar" -User "[email protected]" -AccessRights "PublishingEditor"
- -Identity 参数是想要共享其文件夹的用户(向其他用户提供访问其日历内容的选项)。
- -User 参数表示将有权访问日历的用户。
注意:来自使用非英语语言的其他国家/地区的用户对日历、联系人和其他文件夹有不同的名称。因此,我们始终会在命令和脚本中添加 Get-MailboxFolderStatistics PowerShell cmdlet 以检索正确的名称。
将发布编辑器权限添加到日历文件夹
您可以为用户分配对不同语言或国家/地区的日历文件夹的发布编辑权限。在我们的示例中,用户([email protected])来自荷兰,并且使用不同的语言(荷兰语),因此文件夹的名称不会是日历但议程。
我们希望为用户 [email protected] 分配对 [email protected] 日历文件夹的发布编辑权限。 PowerShell脚本会自动转换不同语言的文件夹名称并添加文件夹权限。
- 在第 1 行中指定要共享文件夹的邮箱
- 在第 2 行中指定您要添加权限的用户
- 运行 PowerShell 脚本
$mailbox = "[email protected]"
$user = "[email protected]"
$folder = (Get-MailboxFolderStatistics -Identity "$($mailbox)" | Where-Object { $_.FolderType -eq "Calendar" }).Name
Add-MailboxFolderPermission "$($mailbox):$($folder)" -User "$($user)" -AccessRights "PublishingEditor" | Select-Object FolderName, User, AccessRights
PowerShell 输出结果显示,用户 Stephen Hunter 拥有对文件夹名称 Agenda 的访问权限,在荷兰语中,该文件夹的意思是日历。
FolderName User AccessRights
---------- ---- ------------
Agenda Stephen Hunter {PublishingEditor}
用户Stephen Hunter可以打开Brenda Smith的共享日历。这意味着用户 Stephen Hunter 有权创建、编辑和删除此日历文件夹中的条目。
注意:日历文件夹不会自动显示在用户邮箱中。用户需要手动将其添加到OWA和Outlook中。
添加发布编辑器权限以批量处理所有日历文件夹
您可以为单个用户分配对所有用户的日历文件夹具有特定权限的权限。
在我们的示例中,我们希望为用户分配对所有用户的日历文件夹具有发布编辑权限的用户([email protected]) 。请记住,您始终可以删除这些权限,我们将在接下来的步骤中向您展示。
- 在第 1 行上指定用户邮箱
- 运行以下 PowerShell 脚本
$user = "[email protected]"
$mailboxes = Get-Mailbox -Resultsize Unlimited
# Loop through each mailbox
foreach ($mailbox in $mailboxes) {
# Get calendar folder name for the current mailbox and store it in the variable $folder
$folder = (Get-MailboxFolderStatistics -Identity $mailbox.PrimarySmtpAddress | Where-Object { $_.FolderType -eq "Calendar" }).Name
# Add mailbox folder permissions for all calendar folders
Add-MailboxFolderPermission -Identity "$($mailbox.PrimarySmtpAddress):$($folder)" -User $($user) -AccessRights "PublishingEditor" | Select-Object Identity, FolderName, User, AccessRights
}
它将允许用户 [email protected] 拥有发布编辑权限来访问所有用户的日历文件夹。
Identity FolderName User AccessRights
-------- ---------- ---- ------------
0de964ae-f09a-4e65-bc8c-cbeac2745e4c:\Calendar Calendar Brenda Smith {PublishingEditor}
41377e9c-dc47-46c0-b4a5-1d5bbdcb5cc5:\Calendar Calendar Brenda Smith {PublishingEditor}
f8261d51-3df9-4f21-a6b1-533412669c11:\Calendar Calendar Brenda Smith {PublishingEditor}
7bfec79d-7806-484a-ac83-133cd4cf5af5:\Calendar Calendar Brenda Smith {PublishingEditor}
82cd0d62-e974-4892-aca6-e0387abc62be:\Calendar Calendar Brenda Smith {PublishingEditor}
5f4d37cd-383c-413f-87a2-aab0dc6a531a:\Calendar Calendar Brenda Smith {PublishingEditor}
0f38d53f-cbe0-4844-86e9-1032a45ba31b:\Agenda Agenda Brenda Smith {PublishingEditor}
411a8f10-0dfa-4034-a1e3-a8b6e4cad2f6:\Calendar Calendar Brenda Smith {PublishingEditor}
52a6c1c7-77d2-4109-99b9-a4076167b6e2:\Calendar Calendar Brenda Smith {PublishingEditor}
2dead2c4-7baf-4899-a7d1-dfa73f4d445d:\Calendar Calendar Brenda Smith {PublishingEditor}
将发布编辑器权限添加到“联系人”文件夹
我们将为单个用户分配对特定用户的联系人文件夹的权限。首先,我们向您展示了如何向日历文件夹添加权限,但现在我们将对联系人文件夹执行相同的操作。
要添加对特定邮箱文件夹的权限,您需要使用 Add-MailboxFolderPermission PowerShell cmdlet。
在我们的示例中,我们将为用户 [email protected] 分配发布编辑权限,以访问的联系人文件夹[email protected]。
- 在第 1 行中指定要共享文件夹的邮箱
- 在第 2 行中指定您要添加权限的用户
- 运行 PowerShell 脚本
$mailbox = "[email protected]"
$user = "[email protected]"
$folder = (Get-MailboxFolderStatistics -Identity "$($mailbox)" | Where-Object { $_.FolderType -eq "Contacts" }).Name
Add-MailboxFolderPermission "$($mailbox):$($folder)" -User "$($user)" -AccessRights "PublishingEditor" | Select-Object FolderName, User, AccessRights
PowerShell 输出结果。
FolderName User AccessRights
---------- ---- ------------
Contactpersonen Stephen Hunter {PublishingEditor}
用户Stephen Hunter可以打开Brenda Smith的共享联系人。这也意味着用户 Stephen Hunter 有权在联系人文件夹中创建、编辑和删除条目。
注意:联系人文件夹不会自动显示在用户邮箱中。用户需要手动将其添加到OWA和Outlook中。
添加发布编辑器权限以批量处理所有联系人文件夹
您可以为单个用户分配对所有用户的联系人文件夹具有特定权限的权限。
在我们的示例中,我们希望为用户分配对所有用户的联系人文件夹具有发布编辑权限的用户([email protected])。请记住,您始终可以删除这些权限,我们将在接下来的步骤中向您展示。
- 在第 1 行上指定用户邮箱
- 运行以下 PowerShell 脚本
$user = "[email protected]"
$mailboxes = Get-Mailbox -Resultsize Unlimited
# Loop through each mailbox
foreach ($mailbox in $mailboxes) {
# Get folder name for the current mailbox and store it in the variable $folder
$folder = (Get-MailboxFolderStatistics -Identity $mailbox.PrimarySmtpAddress | Where-Object { $_.FolderType -eq "Contacts" }).Name
# Add mailbox folder permissions for all contacts folders
Add-MailboxFolderPermission -Identity "$($mailbox.PrimarySmtpAddress):$($folder)" -User $($user) -AccessRights "PublishingEditor" | Select-Object Identity, FolderName, User, AccessRights
}
它将允许用户 [email protected] 对所有用户的联系人文件夹拥有发布编辑权限。
Identity FolderName User AccessRights
-------- ---------- ---- ------------
0de964ae-f09a-4e65-bc8c-cbeac2745e4c:\Contacts Contacts Brenda Smith {PublishingEditor}
41377e9c-dc47-46c0-b4a5-1d5bbdcb5cc5:\Contacts Contacts Brenda Smith {PublishingEditor}
f8261d51-3df9-4f21-a6b1-533412669c11:\Contacts Contacts Brenda Smith {PublishingEditor}
7bfec79d-7806-484a-ac83-133cd4cf5af5:\Contacts Contacts Brenda Smith {PublishingEditor}
82cd0d62-e974-4892-aca6-e0387abc62be:\Contacts Contacts Brenda Smith {PublishingEditor}
5f4d37cd-383c-413f-87a2-aab0dc6a531a:\Contacts Contacts Brenda Smith {PublishingEditor}
0f38d53f-cbe0-4844-86e9-1032a45ba31b:\Contact… Contactpe… Brenda Smith {PublishingEditor}
411a8f10-0dfa-4034-a1e3-a8b6e4cad2f6:\Contacts Contacts Brenda Smith {PublishingEditor}
52a6c1c7-77d2-4109-99b9-a4076167b6e2:\Contacts Contacts Brenda Smith {PublishingEditor}
2dead2c4-7baf-4899-a7d1-dfa73f4d445d:\Contacts Contacts Brenda Smith {PublishingEditor}
2.为特定文件夹添加文件夹权限
我们将向您展示如何与其他用户共享特定邮箱文件夹或所有邮箱文件夹并为其添加权限。
添加对特定文件夹名称的权限
如果用户邮箱创建了要与其他用户共享的文件夹,您需要指定文件夹名称并分配要启用的访问权限。
在我们的示例中,用户邮箱([email protected])想要在其收件箱中共享特定文件夹名称(地图 A) > 与另一个用户([email protected]) 并添加访问权限。
- 在第 1 行中指定要共享文件夹的邮箱
- 在第 2 行中指定您要添加权限的用户
- 在第 3 行中指定文件夹名称
- 运行以下 PowerShell 命令脚本
$mailbox = "[email protected]"
$user = "[email protected]"
$foldername = "Map A"
$folder = (Get-MailboxFolderStatistics -Identity "$($mailbox)" | Where-Object { $_.FolderType -eq "Inbox" }).Name
Add-MailboxFolderPermission "$($mailbox):$($folder)$($foldername)" -User "$($user)" -AccessRights "Reviewer" | Select-Object FolderName, User, AccessRights
PowerShell 输出显示如下。
FolderName User AccessRights
---------- ---- ------------
Map A Stephen Hunter {Reviewer}
注意:特定文件夹不会自动显示在用户邮箱中。用户需要手动将其添加到OWA和Outlook中。
为所有邮箱文件夹添加权限
您可以与其他用户共享邮箱中的所有文件夹并为其分配权限。
在我们的示例中,我们希望为用户分配对所有用户邮箱文件夹具有审阅者权限的用户([email protected])(Brenda.Smith@ a-d.site)。它将自动遍历每个文件夹并为用户分配您提供的访问权限。
- 指定要共享第 1 行中所有文件夹的邮箱
- 在第 2 行中指定您要添加权限的用户
- 在第 3 行中指定访问权限
- 运行 PowerShell 命令脚本
$mailbox = "[email protected]"
$user = "[email protected]"
$accessRights = "Reviewer"
$folders = Get-MailboxFolderStatistics $mailbox | Where-Object { $_.FolderPath.Contains("/") }
foreach ($folder in $folders) {
$folderPath = "$($mailbox):" + $folder.FolderPath.Replace("/", "\")
$existingPermission = Get-MailboxFolderPermission -Identity $folderPath -User $user -ErrorAction SilentlyContinue
if ($existingPermission) {
Write-Host "$($user) already has $($accessRights) permission to $($folder.FolderPath)" -ForegroundColor Yellow
}
else {
$null = Add-MailboxFolderPermission -Identity $folderPath -User "$($user)" -AccessRights $accessRights
Write-Host "Added $($accessRights) permission to $($user) for $($folder.FolderPath)" -ForegroundColor Green
}
}
PowerShell 输出将以用户邮箱 ([email protected]) 的语言显示用户邮箱中所有文件夹的列表。在我们的示例中,文件夹名称采用荷兰语,因为用户来自荷兰。它将向用户 Stephen Hunter 分配所有文件夹的审阅者权限。
PowerShell 输出显示以下时间:
- 它添加对用户邮箱文件夹名称的权限
- 用户已具有分配给邮箱文件夹名称的权限
- 找不到邮箱文件夹名称
Added Reviewer permission to [email protected] for /Bovenste map van gegevensarchief
[email protected] already has Reviewer permission to /Agenda
[email protected] already has Reviewer permission to /Contactpersonen
Added Reviewer permission to [email protected] for /Postvak IN
Added Reviewer permission to [email protected] for /Postvak IN/Map A
Added Reviewer permission to [email protected] for /Postvak UIT
Added Reviewer permission to [email protected] for /Yammer-hoofdmap
Add-MailboxFolderPermission: Ex43C0AC|Microsoft.Exchange.Configuration.Tasks.ManagementObjectNotFoundException
|The operation couldn't be performed because '[email protected]:\Versions' couldn't be found.
Added Reviewer permission to [email protected] for /Versions
3. 将文件夹权限设置为日历或联系人文件夹
我们将使用 Set-MailboxFolderPermission PowerShell cmdlet 更改分配给邮箱用户的文件夹级别权限。
设置单个用户的日历文件夹默认权限为发布编辑器
默认情况下,用户拥有日历文件夹仅限可用性的访问权限。您可以更改单个用户对特定文件夹的默认访问权限。
在我们的示例中,我们仅将用户 [email protected] 的默认访问权限从仅可用性更改为发布编辑器日历文件夹。这意味着从现在开始,所有用户都将默认拥有对用户 Brenda 的日历文件夹的发布编辑访问权限。
- 在第 1 行中指定要更改文件夹权限的邮箱
- 运行 PowerShell 命令脚本以更改用户默认权限
$mailbox = "[email protected]"
$folder = (Get-MailboxFolderStatistics -Identity "$($mailbox)" | Where-Object { $_.FolderType -eq "Calendar" }).Name
Set-MailboxFolderPermission "$($mailbox):$($folder)" -User "Default" -AccessRights "PublishingEditor"
它将更改用户 [email protected] 的日历文件夹的发布编辑器的默认访问权限。
将批量用户的日历文件夹默认权限设置为审阅者
您还可以批量更改所有用户对特定文件夹的默认访问权限。默认情况下,所有用户都具有日历文件夹的仅限可用性访问权限。我们想要更改所有用户的默认权限。
在我们的示例中,我们将批量用户对日历文件夹的默认共享权限设置为审阅者。
运行以下 PowerShell 脚本。
$mailboxes = Get-Mailbox -Resultsize Unlimited
# Loop through each mailbox
foreach ($mailbox in $mailboxes) {
# Get calendar folder name for the current mailbox and store it in the variable $folder
$folder = (Get-MailboxFolderStatistics -Identity $mailbox.PrimarySmtpAddress | Where-Object { $_.FolderType -eq "Calendar" }).Name
# Add mailbox folder permissions for all calendar folders
Set-MailboxFolderPermission -Identity "$($mailbox.PrimarySmtpAddress):$($folder)" -User "Default" -Accessrights "Reviewer"
}
它将日历文件夹中的审阅者的访问权限更改为批量处理所有邮箱。您可以随时将其更改回默认的仅限可用性访问权限。
设置单个用户的联系人文件夹默认权限为编辑者
要更改用户特定文件夹的默认权限,我们将使用 Set-MailboxFolderPermission PowerShell cmdlet。
默认情况下,用户对联系人文件夹具有无访问权限。您始终可以更改单个用户对特定文件夹的默认访问权限。
在我们的示例中,我们仅将联系人中用户 [email protected] 的默认访问权限从 无 更改为 编辑文件夹。这意味着从现在开始,所有用户都将默认拥有 Brenda 联系人文件夹的 编辑 访问权限。
- 在第 1 行中指定要更改文件夹权限的邮箱
- 运行 PowerShell 命令脚本
$mailbox = "[email protected]"
$folder = (Get-MailboxFolderStatistics -Identity "$($mailbox)" | Where-Object { $_.FolderType -eq "Contacts" }).Name
Set-MailboxFolderPermission "$($mailbox):$($folder)" -User "Default" -AccessRights "Editor"
它将更改用户 [email protected] 联系人文件夹的默认访问权限编辑。
4.获取邮箱文件夹权限
使用 Get-MailboxFolderPermission PowerShell cmdlet 查看并导出单个用户的所有邮箱文件夹权限。
获取单个用户的日历文件夹权限
获取单个用户的邮箱文件夹权限。在我们的示例中,我们想要查看特定用户的日历文件夹名称([email protected])。
- 在第 1 行中指定邮箱
- 运行 PowerShell命令脚本查看单个用户的日历文件夹权限
$mailbox = "[email protected]"
$folder = (Get-MailboxFolderStatistics -Identity "$($mailbox)" | Where-Object { $_.FolderType -eq "Calendar" }).Name
Get-MailboxFolderPermission "$($mailbox):$($folder)" | Select-Object FolderName, User, AccessRights
PowerShell 输出以用户语言显示日历文件夹。
FolderName User AccessRights
---------- ---- ------------
Agenda Default {Reviewer}
Agenda Anonymous {None}
Agenda Brenda Smith {PublishingEditor}
Agenda Stephen Hunter {PublishingEditor}
Agenda Amanda Hansen {PublishingEditor}
获取所有用户的日历文件夹权限
获取组织中批量所有用户的所有日历文件夹权限。
运行以下 PowerShell 脚本。
$mailboxes = Get-Mailbox -ResultSize Unlimited
# Loop through each mailbox
foreach ($mailbox in $mailboxes) {
# Get calendar folder name for the current mailbox and store it in the variable $calendarFolder
$folder = (Get-MailboxFolderStatistics -Identity $mailbox.PrimarySmtpAddress | Where-Object { $_.FolderType -eq "Calendar" }).Name
# Get mailbox folder permissions for the calendar folder
Get-MailboxFolderPermission "$($mailbox.PrimarySmtpAddress):$($folder)" -User Default | Select-Object Identity, FolderName, User, AccessRights
}
PowerShell 输出以相应语言显示所有许可邮箱的日历文件夹名称。
Identity FolderName User AccessRights
-------- ---------- ---- ------------
0de964ae-f09a-4e65-bc8c-cbeac2745e4c:\Calendar Calendar Default {AvailabilityOnly}
41377e9c-dc47-46c0-b4a5-1d5bbdcb5cc5:\Calendar Calendar Default {Editor}
f8261d51-3df9-4f21-a6b1-533412669c11:\Calendar Calendar Default {AvailabilityOnly}
7bfec79d-7806-484a-ac83-133cd4cf5af5:\Calendar Calendar Default {AvailabilityOnly}
82cd0d62-e974-4892-aca6-e0387abc62be:\Calendar Calendar Default {AvailabilityOnly}
5f4d37cd-383c-413f-87a2-aab0dc6a531a:\Calendar Calendar Default {AvailabilityOnly}
0f38d53f-cbe0-4844-86e9-1032a45ba31b:\Agenda Agenda Default {AvailabilityOnly}
411a8f10-0dfa-4034-a1e3-a8b6e4cad2f6:\Calendar Calendar Default {AvailabilityOnly}
52a6c1c7-77d2-4109-99b9-a4076167b6e2:\Calendar Calendar Default {AvailabilityOnly}
2dead2c4-7baf-4899-a7d1-dfa73f4d445d:\Calendar Calendar Default {Reviewer}
获取联系人文件夹权限
获取单个用户的邮箱文件夹权限。在我们的示例中,我们想要导出特定用户 ([email protected]) 的 contacts 文件夹权限。
- 在第 1 行中指定邮箱
- 运行 PowerShell命令脚本查看单个用户的联系人文件夹权限
$mailbox = "[email protected]"
$folder = (Get-MailboxFolderStatistics -Identity "$($mailbox)" | Where-Object { $_.FolderType -eq "Contacts" }).Name
Get-MailboxFolderPermission "$($mailbox):$($folder)" | Select-Object FolderName, User, AccessRights
PowerShell 输出以用户语言显示联系人文件夹。
FolderName User AccessRights
---------- ---- ------------
Contactpersonen Default {Editor}
Contactpersonen Anonymous {None}
Contactpersonen Stephen Hunter {PublishingEditor}
5.使用PowerShell脚本将邮箱文件夹权限导出到CSV文件
您可以使用 PowerShell 脚本将所有用户的邮箱文件夹权限导出到 CSV 文件。我们还将向您展示如何将单个用户的邮箱文件夹权限导出到 CSV 文件。
下载 Get-FolderPermission.ps1 PowerShell 脚本
要将所有批量用户的邮箱文件夹权限导出到 CSV 文件,请执行以下步骤:
- 下载 Get-FolderPermissions.ps1 PowerShell 脚本
- 将以下 PowerShell 脚本复制到记事本中并将其另存为 Get-FolderPermissions.ps1 文件
param (
[string]$Identity = "*", # Default value is "*" (all users)
[string]$OutputFile = "C:\temp\MailboxPermissions.csv"
)
# Fetch mailboxes of type UserMailbox only
$Mailboxes = Get-Mailbox -RecipientTypeDetails 'UserMailbox' $Identity -ResultSize Unlimited | Sort-Object
$result = @()
# Counter for progress bar
$MailboxCount = ($Mailboxes | Measure-Object).Count
$count = 1
foreach ($Mailbox in $Mailboxes) {
# Use Alias property instead of name to ensure 'uniqueness' passed on to Get-MailboxFolderStatistics
$Alias = '' + $Mailbox.Alias
$DisplayName = ('{0} ({1})' -f $Mailbox.DisplayName, $Mailbox.Name)
$activity = ('Working... [{0}/{1}]' -f $count, $MailboxCount)
$status = ('Getting folders for mailbox: {0}' -f $DisplayName)
Write-Progress -Status $status -Activity $activity -PercentComplete (($count / $MailboxCount) * 100)
# Fetch folders
$Folders = @('\')
$FolderStats = Get-MailboxFolderStatistics $Alias | Select-Object -Skip 1
foreach ($FolderStat in $FolderStats) {
$FolderPath = $FolderStat.FolderPath.Replace('/', '\')
$Folders += $FolderPath
}
foreach ($Folder in $Folders) {
# Build folder key to fetch mailbox folder permissions
$FolderKey = $Alias + ':' + $Folder
# Fetch mailbox folder permissions
$Permissions = Get-MailboxFolderPermission -Identity $FolderKey -ErrorAction SilentlyContinue
# Store results in variable
foreach ($Permission in $Permissions) {
$User = $Permission.User -replace "ExchangePublishedUser\.", ""
if ($User -notlike 'Default' -and
$User -notlike 'Anonymous' -and
$Permission.AccessRights -notlike 'None' -and
$Permission.AccessRights -notlike 'Owner') {
$result += [PSCustomObject]@{
Mailbox = $DisplayName
FolderName = $Permission.FolderName
Identity = $Folder
User = $User -join ','
AccessRights = $Permission.AccessRights -join ','
}
}
}
}
# Increment counter
$count++
}
# Export to CSV
$result | Export-Csv -Path $OutputFile -NoTypeInformation -Encoding UTF8 #-Delimiter ';'
- 如果您还没有 (C:) 驱动器中的 scripts 和 temp 文件夹,请创建它们
- 将 Get-FolderPermissions.ps1 PowerShell 脚本保存在 C:\scripts 文件夹中
- 打开文件检查是否解锁,防止运行脚本时出错
将所有用户批量导出到 CSV 的邮箱文件夹权限
要将所有用户邮箱文件夹权限导出到 CSV 文件,请按照下列步骤操作:
- 以管理员身份运行 PowerShell
- 指定输出文件
- 运行 Get-FolderPermissions.ps1 PowerShell 脚本
C:\scripts\.\Get-FolderPermissions.ps1 -OutputFile "C:\temp\BulkUsers.csv"
- 您将在 C:\temp 文件夹中找到 BulkUsers.csv 文件
- 使用 Microsoft Excel 打开 CSV 文件以查看结果
将单个用户的邮箱文件夹权限导出到 CSV
要导出特定用户的邮箱文件夹权限,请按照下列步骤操作:
- 指定用户身份
- 指定输出文件
- 为单个用户运行 Get-FolderPermissions.ps1 PowerShell 脚本
C:\scripts\.\Get-FolderPermissions.ps1 -Identity "[email protected]" -OutputFile "C:\temp\SingleUser.csv"
- 您将在 C:\temp 文件夹中找到 SingleUser.csv 文件
- 使用 Microsoft Excel 打开 CSV 文件以查看结果
CSV 文件将显示邮箱 ([email protected]) 拥有的所有文件夹权限的列表。
6.删除邮箱文件夹权限
要删除分配给用户的邮箱文件夹权限,我们将使用Remove-MailboxFolderPermission PowerShell cmdlet。您可以删除分配给单个或批量所有用户的所有邮箱文件夹权限。您需要指定的只是文件夹名称以及与之共享该文件夹的用户。
删除特定用户的日历文件夹权限
在我们的示例中,用户 [email protected] 拥有发布者编辑者权限,可以访问 [email protected] 的 calendar 文件夹>,我们想删除这些权限。
我们还将添加 -Confirm:$false 来抑制确认提示。
- 在第 1 行中指定邮箱
- 在第 2 行中指定要删除权限的用户
- 运行 PowerShell 命令脚本以删除单个用户对日历文件夹的权限
$mailbox = "[email protected]"
$user = "[email protected]"
$folder = (Get-MailboxFolderStatistics -Identity "$($mailbox)" | Where-Object { $_.FolderType -eq "Calendar" }).Name
Remove-MailboxFolderPermission "$($mailbox):$($folder)" -User "$($user)" -Confirm:$false
它将删除共享日历文件夹的发布编辑权限。
删除特定用户的联系人文件夹权限
在我们的示例中,用户 [email protected] 拥有 Publisher Editor 权限,可以访问 Brenda.Smith 的 contacts 文件夹@a-d.site,我们想要删除这些权限。
我们还将添加 -Confirm:$false 以删除确认提示。
- 在第 1 行中指定邮箱
- 在第 2 行中指定要删除权限的用户
- 运行 PowerShell 命令脚本以删除单个用户对联系人文件夹的权限
$mailbox = "[email protected]"
$user = "[email protected]"
$folder = (Get-MailboxFolderStatistics -Identity "$($mailbox)" | Where-Object { $_.FolderType -eq "Contacts" }).Name
Remove-MailboxFolderPermission "$($mailbox):$($folder)" -User "$($user)" -Confirm:$false
它将删除联系人文件夹的发布编辑权限。
从批量所有用户中删除日历文件夹权限
如果您已将特定用户邮箱文件夹权限分配给多个用户,则可以将其全部删除。
在我们的示例中,我们为用户 [email protected] 分配了对所有用户的日历文件夹的发布编辑权限。我们希望使用 PowerShell 脚本从所有用户邮箱中删除这些权限。
- 在第 1 行上指定用户邮箱
- 运行以下 PowerShell 脚本
$user = "[email protected]"
$mailboxes = Get-Mailbox -Resultsize Unlimited
# Loop through each mailbox
foreach ($mailbox in $mailboxes) {
# Get calendar folder name for the current mailbox and store it in the variable $folder
$folder = (Get-MailboxFolderStatistics -Identity $mailbox.PrimarySmtpAddress | Where-Object { $_.FolderType -eq "Calendar" }).Name
# Add mailbox folder permissions for all calendar folders
Remove-MailboxFolderPermission -Identity "$($mailbox.PrimarySmtpAddress):$($folder)" -User $user -Confirm:$false
}
它将删除日历文件夹的发布编辑器权限。
从批量所有用户中删除“联系人”文件夹权限
如果您已将特定用户邮箱文件夹权限分配给多个用户,则可以将其全部删除。
在我们的示例中,我们为用户 [email protected] 分配了对所有用户的联系人文件夹的发布编辑权限。我们希望使用 PowerShell 脚本从所有用户邮箱中删除这些权限。
- 在第 1 行中指定用户邮箱
- 运行以下 PowerShell 脚本
$user = "[email protected]"
$mailboxes = Get-Mailbox -Resultsize Unlimited
# Loop through each mailbox
foreach ($mailbox in $mailboxes) {
# Get folder name for the current mailbox and store it in the variable $folder
$folder = (Get-MailboxFolderStatistics -Identity $mailbox.PrimarySmtpAddress | Where-Object { $_.FolderType -eq "Contacts" }).Name
# Add mailbox folder permissions for all contacts folders
Remove-MailboxFolderPermission -Identity "$($mailbox.PrimarySmtpAddress):$($folder)" -User $user -Confirm:$false
}
它将删除联系人文件夹的发布编辑者权限。
删除单个用户所有邮箱文件夹权限
假设您不记得与其他用户共享的文件夹名称,但想要删除某个用户的这些权限。使用下面的 PowerShell 脚本,您可以删除所有邮箱文件夹权限。
在我们的示例中,我们为用户 ([email protected]) 分配了与用户 ([email protected]) 不同的邮箱文件夹权限。现在我们要删除([email protected])对([email protected])文件夹的所有文件夹级权限。
- 在第 1 行中指定共享文件夹的邮箱
- 在第 2 行中指定具有文件夹权限的用户
- 运行以下 PowerShell 脚本
$mailbox = "[email protected]"
$user = "[email protected]"
$folders = Get-MailboxFolderStatistics $mailbox | Where-Object { $_.FolderPath.Contains("/") }
foreach ($folder in $folders) {
$folderPath = "$($mailbox):" + $folder.FolderPath.Replace("/", "\")
$existingPermission = Get-MailboxFolderPermission -Identity $folderPath -User $user -ErrorAction SilentlyContinue
if ($existingPermission) {
Remove-MailboxFolderPermission -Identity $folderPath -User $user -Confirm:$false
Write-Host "Permission removed for $($user) from $($folder.FolderPath)" -ForegroundColor Green
}
else {
Write-Host "No permission found for $($user) on $($folder.FolderPath)" -ForegroundColor Yellow
}
}
输出结果显示何时:
- 用户邮箱文件夹名称的权限被删除
- 没有找到该用户的现有权限
No permission found for [email protected] on /Archief
No permission found for [email protected] on /Contactpersonen
No permission found for [email protected] on /Files
Permission removed for [email protected] from /Postvak IN
Permission removed for [email protected] from /Postvak IN/Map A
Permission removed for [email protected] from /Postvak UIT
No permission found for [email protected] on /Audits
No permission found for [email protected] on /Versions
这是否有助于您使用 PowerShell 管理文件夹权限?
阅读更多:如何分配完全访问邮箱权限 »
结论
您了解了如何使用 Exchange Online PowerShell 管理邮箱文件夹权限。 PowerShell cmdlet 添加、设置、获取和删除邮箱文件夹权限非常适合单个或批量使用全部用户。请记住使用 PowerShell 脚本导出分配给单个或所有用户的所有邮箱文件夹权限以获取审核报告。
您喜欢这篇文章吗?您可能还喜欢使用 PowerShell 管理邮箱时区和语言设置。不要忘记关注我们并分享这篇文章。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag