Permissions
通過 Import-CliXML 應用 Exchange 公用文件夾權限導入
我確實遇到了失去通過組分配的所有公用文件夾權限的情況。
在從我們的 MSEX2016 伺服器開始遷移到 Office 365 之前,所有權限都導出到 XML 文件中,我認為(在此Microsoft 頁面上描述)發生在以下命令中:
Get-PublicFolder -Recurse -ResultSize Unlimited | Get-PublicFolderClientPermission | Select-Object Identity,User,AccessRights -ExpandProperty AccessRights | Export-CliXML OnPrem_PFPerms.xml
輸出文件“OnPrem_PFPerms.xml”大約有 5 GB。僅對大約 300 GB PF 結構的權限對我來說聽起來很重要,但這可能是由於 XML 格式的複雜性造成的。7-Zip 壓縮使其降至 25 MB,這意味著其中有很多冗餘數據。
在我們之前遷移到 MSEX2016 的 MSEX2010 上,有一個大約 500 MB 的“Legacy_PFPerms.xml”文件。
將 XML 文件中的所有權限應用於 Office 365 / Exchange Online 上的公用文件夾結構的正確 PowerShell 命令是什麼?
我猜 Import-CliXML 會以某種方式完成這項工作,但我不太熟悉 PowerShell 來建構正確的命令。
最後,以下 PowerShell 腳本允許我將 XML 文件中的所有權限應用於公用文件夾結構。感謝Ivan_Wang的回答將我引向了正確的方向。
$pfs = Import-Clixml -Path OnPrem_PFPerms.xml foreach($pf in $pfs) { Add-PublicFolderClientPermission -Identity ("\" + $($pf.Identity.MapiFolderPath -join "\")) -User $pf.User.DisplayName -AccessRights $pf.AccessRights[0].ToString() }
也可以將其拆分為多個 PowerShell 會話以更快地應用更改,因為它執行速度非常慢。
- PS會話:
foreach($pf in $pfs[0..2000])
…- PS會話:
foreach($pf in $pfs[2001..4000])
……
不要一次執行太多會話,否則會中斷與 Exchange Online 的連接,並顯示以下消息:
The request is not serviced on the server. Your request is too frequent.