AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1080898
Accepted
Michael Uray
Michael Uray
Asked: 2021-10-19 05:01:23 +0800 CST2021-10-19 05:01:23 +0800 CST 2021-10-19 05:01:23 +0800 CST

通过 Import-CliXML 应用 Exchange 公用文件夹权限导入

  • 772

我确实遇到了丢失通过组分配的所有公用文件夹权限的情况。

在从我们的 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 来构建正确的命令。

exchange permissions microsoft-office-365 import public-folders
  • 3 3 个回答
  • 331 Views

3 个回答

  • Voted
  1. Best Answer
    Michael Uray
    2021-10-20T05:38:24+08:002021-10-20T05:38:24+08:00

    最后,以下 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 会话以更快地应用更改,因为它运行速度非常慢。

    1. PS会话: foreach($pf in $pfs[0..2000]) ...

    2. PS会话: foreach($pf in $pfs[2001..4000])...

    ...

    不要一次运行太多会话,否则会中断与 Exchange Online 的连接,并显示以下消息: The request is not serviced on the server. Your request is too frequent.

    • 2
  2. Ivan_Wang
    2021-10-19T23:30:33+08:002021-10-19T23:30:33+08:00

    .xml 文件中包含哪些属性?如果有Identity和User,AccessRights,您可以尝试:

    $pfs = Import-Clixml -Path OnPrem_PFPerms.xml
    foreach($pf in $pfs)
    {
    Add-PublicFolderClientPermission -Identity $pf.Identity -User $pf.User -AccessRights $pf.AccessRights
    }
    

    根据您上面的命令,它似乎只导出AccessRights对象。如果是这样,您可能需要将 Exchange Online 中的当前 ACL 列表导出到 .csv 文件:

    Get-PublicFolder -Recurse -ResultSize Unlimited | Get-PublicFolderClientPermission | Select-Object Identity,User,@{n="AccessRights";e={[String]($_.AccessRights)}} -ExpandProperty AccessRights | Export-Csv pf.csv
    

    并通过 PowerShell 再次将公用文件夹的权限分配给您的用户(对于现有的权限条目,PowerShell 将报告警告:已找到用户的现有权限条目):

    $pfs = Import-Csv pf.csv
    foreach($pf in $pfs)
    {
    Add-PublicFolderClientPermission -Identity $pf.Identity -User $pf.User -AccessRights $pf.AccessRights
    }
    
    • 1
  3. joeqwerty
    2021-10-19T09:15:35+08:002021-10-19T09:15:35+08:00

    如果源 Exchange 服务器仍然可用,您可以使用以下命令将公用文件夹客户端权限导出到 CSV 文件并将它们导入 Office 365。您可能需要编辑源 CSV 文件以编辑用户名以匹配 Office权限中存在的每个用户的 365 个用户名。

    将公用文件夹权限导出到 CSV:

    Get-PublicFolder -Recurse | 获取PublicFolderClientPermission | 选择身份、用户、@{ 表达式={$_.AccessRights}; 标签='访问权限' } | 导出 Csv C:\Temp\PublicFolderClientPermission.csv

    从 CSV 导入公用文件夹权限:

    $Users= Import-CSV C:\Temp\PublicFolderClientPermission.csv foreach ($User in $Users){Get-PublicFolder -Identity $($User.identity) | add-publicfolderclientpermission -AccessRights $User.AccessRights -User $User.User}

    • 0

相关问题

  • 如何在使用 RPC over HTTPS 时停止 Outlook 2007 要求提供凭据

  • Exchange 备份的 NT 备份是否会使 Exchange 脱机?

  • 如何在 Exchange 2007 中设置资源邮箱日历的忙/闲权限?

  • Exchange 2007:将带有 SenderID 的邮件移动到垃圾邮件文件夹失败?

  • 如何使用 Exchange 2003 SP2 将垃圾邮件发送到个人垃圾文件夹?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve