Điểm:0

Áp dụng quyền nhập Exchange Public Folder qua Import-CliXML

lá cờ cn

tôi đã chạy vào tình huống rằng tôi đã mất tất cả các quyền đối với thư mục chung được chỉ định thông qua các nhóm.

Trước khi quá trình di chuyển bắt đầu từ máy chủ MSEX2016 của chúng tôi sang Office 365, tôi nghĩ rằng tất cả các quyền đã được xuất sang tệp XML (được mô tả trên cái này trang Microsoft) đã xảy ra với lệnh sau:

Get-PublicFolder -Recurse -ResultSize Unlimited | Get-PublicFolderClientPermission | Select-Object Identity,User,AccessRights -ExpandProperty AccessRights | Xuất-CliXML OnPrem_PFPerms.xml

Tệp đầu ra "OnPrem_PFPerms.xml" có dung lượng khoảng 5 GB. Điều đó nghe có vẻ rất nhiều đối với tôi đối với các quyền chỉ trên cấu trúc khoảng 300 GB PF, nhưng có lẽ kích thước khổng lồ của nó là do sự phức tạp của định dạng XML. Nén 7-Zip giảm dung lượng xuống còn 25 MB, nghĩa là có rất nhiều dữ liệu dư thừa trong đó.

Trên MSEX2010 của chúng tôi đã được chuyển sang MSEX2016 trước đó là tệp "Legacy_PFPerms.xml" với khoảng 500 MB.

Lệnh PowerShell thích hợp để áp dụng tất cả các quyền từ tệp XML cho cấu trúc thư mục chung trên Office 365/Exchange trực tuyến là gì?

Tôi đoán rằng Import-CliXML sẽ thực hiện công việc bằng cách nào đó, nhưng tôi không quen với PowerShell để tạo đúng lệnh.

Điểm:2
lá cờ cn

Cuối cùng, tập lệnh PowerShell sau đây cho phép tôi áp dụng tất cả các quyền từ tệp XML cho cấu trúc thư mục chung. Nhờ vào Ivan_Wang người đã dẫn tôi đi đúng hướng với câu trả lời của anh ấy.

$pfs = Nhập-Clixml -Đường dẫn OnPrem_PFPerms.xml

foreach($pf trong $pfs)
{
Add-PublicFolderClientPermission -Identity ("\" + $($pf.Identity.MapiFolderPath -join "\")) -User $pf.User.DisplayName -AccessRights $pf.AccessRights[0].ToString()
}

Cũng có thể chia nó thành nhiều phiên PowerShell để áp dụng các thay đổi nhanh hơn vì nó chạy khá chậm.

  1. Phiên PS: foreach($pf trong $pfs[0..2000]) ...

  2. Phiên PS: foreach($pf trong $pfs[2001..4000])...

...

Không chạy quá nhiều phiên cùng một lúc, nếu không nó sẽ làm gián đoạn kết nối với Exchange Online với thông báo sau: Yêu cầu không được phục vụ trên máy chủ. Yêu cầu của bạn quá thường xuyên.

Ivan_Wang avatar
lá cờ us
Tôi rất vui vì thông tin dưới đây hữu ích cho bạn. Cảm ơn bạn đã chia sẻ và bổ sung đồng thời! Nếu có vấn đề về quá trình xuất này sau đó, xin vui lòng gửi nó. Nếu mọi thứ hoạt động tốt, bạn có thể đánh dấu câu trả lời hay nhất để hoàn thành chủ đề này. Chúc bạn ngày mới tốt lành:)
Điểm:1
lá cờ us

Các thuộc tính có trong tệp .xml là gì? Nếu có Xác thựcNgười dùng, quyền truy cập, bạn có thể thử:

$pfs = Nhập-Clixml -Đường dẫn OnPrem_PFPerms.xml
foreach($pf trong $pfs)
{
Add-PublicFolderClientPermission -Identity $pf.Identity -User $pf.User -AccessRights $pf.AccessRights
}

Dựa trên lệnh của bạn ở trên, có vẻ như chỉ xuất khẩu quyền truy cập vật. Nếu vậy, bạn có thể cần xuất danh sách ACL hiện tại trong Exchange Online sang tệp .csv:

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

Và gán lại quyền của các thư mục công cộng cho người dùng của bạn thông qua PowerShell (Đối với các mục nhập quyền hiện có, PowerShell sẽ báo cáo cảnh báo: Đã tìm thấy mục nhập quyền hiện có cho người dùng):

$pfs = Nhập-Csv pf.csv
foreach($pf trong $pfs)
{
Add-PublicFolderClientPermission -Identity $pf.Identity -User $pf.User -AccessRights $pf.AccessRights
}
Điểm:0
lá cờ cv

Nếu máy chủ Exchange nguồn vẫn khả dụng, bạn có thể sử dụng cách sau để xuất các quyền của ứng dụng khách Thư mục chung sang tệp CSV và nhập chúng vào Office 365. Có thể bạn sẽ cần chỉnh sửa tệp CSV nguồn để chỉnh sửa tên người dùng cho phù hợp với Office 365 tên người dùng cho mỗi người dùng có trong quyền.

Xuất các quyền đối với Thư mục công cộng sang CSV:

Get-PublicFolder-Recurse | Get-PublicFolderClientPermission | Chọn Danh tính, Người dùng, @{ biểu thức={$_.AccessRights}; nhãn='Quyền truy cập' } | Xuất-Csv C:\Temp\PublicFolderClientPermission.csv

Nhập các quyền đối với Thư mục Công cộng từ CSV:

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

Michael Uray avatar
lá cờ cn
Thật không may là máy chủ Exchange nguồn không còn khả dụng nữa. Tên người dùng/tên nhóm trong O365 giống nhau vì AD tại chỗ của chúng tôi được đồng bộ hóa với Azure AD.
joeqwerty avatar
lá cờ cv
Người dùng được đồng bộ hóa nhưng các quyền của máy khách PF tại cơ sở có thể được liệt kê là **doman\tên người dùng**, trong trường hợp đó, bạn sẽ cần chỉnh sửa chúng để khớp với tên Office 365.
joeqwerty avatar
lá cờ cv
Bạn đã xem lại tệp XML chưa? Có thể sao chép các quyền của ứng dụng khách PF sang tệp CSV không? Nếu vậy, bạn có thể nhập chúng bằng lệnh nhập trong câu trả lời của tôi.
Michael Uray avatar
lá cờ cn
Điều đó cũng có thể đã hoạt động với việc xuất sang CSV, nhưng trong khi chờ đợi, tôi đã tìm ra cách chạy nó trực tiếp qua tệp XML. Tuy nhiên, cảm ơn vì lời khuyên của bạn.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.