Score:0

ใช้การนำเข้าสิทธิ์โฟลเดอร์สาธารณะของ Exchange ผ่าน Import-CliXML

ธง cn

ฉันได้วิ่งเข้าไปใน สถานการณ์ ฉันสูญเสียสิทธิ์อนุญาตโฟลเดอร์สาธารณะทั้งหมดของฉันซึ่งกำหนดผ่านกลุ่ม

ก่อนที่การย้ายข้อมูลจะเริ่มต้นจากเซิร์ฟเวอร์ MSEX2016 ของเราไปยัง Office 365 สิทธิ์ทั้งหมดได้ส่งออกไปยังไฟล์ XML ซึ่งฉันคิดว่า (อธิบายไว้ใน นี้ หน้า Microsoft) เกิดขึ้นกับคำสั่งต่อไปนี้:

Get-PublicFolder -Recurse -ResultSize Unlimited | รับ PublicFolderClientPermission | Select-Object Identity,User,AccessRights -ExpandProperty AccessRights | ส่งออก-CliXML OnPrem_PFPerms.xml

ไฟล์เอาต์พุต "OnPrem_PFPerms.xml" มีขนาดประมาณ 5 GB นั่นฟังดูดีมากสำหรับฉันสำหรับการอนุญาตเฉพาะในโครงสร้าง PF ประมาณ 300 GB แต่อาจเป็นเพราะขนาดที่ใหญ่เนื่องจากความซับซ้อนของรูปแบบ XML การบีบอัด 7-Zip ลดลงเหลือ 25 MB หมายความว่ามีข้อมูลซ้ำซ้อนจำนวนมาก

ใน MSEX2010 ของเราซึ่งถูกย้ายไปยัง MSEX2016 ก่อนหน้านี้เป็นไฟล์ "Legacy_PFPerms.xml" ที่มีขนาดประมาณ 500 MB

ข้อใดคือคำสั่ง PowerShell ที่เหมาะสมในการใช้สิทธิ์ทั้งหมดจากไฟล์ XML กับโครงสร้างโฟลเดอร์สาธารณะใน Office 365 / Exchange ทางออนไลน์

ฉันเดาว่า Import-CliXML จะทำงานนี้ แต่ฉันไม่คุ้นเคยกับ PowerShell ในการสร้างคำสั่งที่ถูกต้อง

Score:2
ธง cn

สุดท้าย สคริปต์ PowerShell ต่อไปนี้อนุญาตให้ฉันใช้สิทธิ์ทั้งหมดจากไฟล์ XML กับโครงสร้างโฟลเดอร์สาธารณะ ขอบคุณ อีวาน_วัง ผู้ทรงนำข้าพเจ้าไปสู่แนวทางที่ถูกต้องด้วยคำตอบของพระองค์

$pfs = นำเข้า-Clixml -Path OnPrem_PFPerms.xml

foreach($pf ใน $pfs)
{
เพิ่ม PublicFolderClientPermission -Identity ("\" + $($pf.Identity.MapiFolderPath -join "\")) -User $pf.User.DisplayName -AccessRights $pf.AccessRights[0].ToString()
}

นอกจากนี้ยังสามารถแยกออกเป็นเซสชัน PowerShell หลายเซสชันเพื่อใช้การเปลี่ยนแปลงได้เร็วขึ้นเนื่องจากทำงานค่อนข้างช้า

  1. PS เซสชัน: foreach($pf ใน $pfs[0..2000]) ...

  2. PS เซสชัน: foreach($pf ใน $pfs[2001..4000])...

...

อย่าเรียกใช้เซสชันมากเกินไปในคราวเดียว มิฉะนั้นจะขัดจังหวะการเชื่อมต่อกับ Exchange Online ด้วยข้อความต่อไปนี้: คำขอไม่ได้ให้บริการบนเซิร์ฟเวอร์ คำขอของคุณบ่อยเกินไป

Ivan_Wang avatar
us flag
เราดีใจที่ข้อมูลด้านล่างเป็นประโยชน์กับคุณ ขอบคุณสำหรับการแบ่งปันและเสริมในเวลาเดียวกัน! หากมีปัญหาเกี่ยวกับขั้นตอนการส่งออกหลังจากนั้น โปรดอย่าลังเลที่จะโพสต์ หากทุกอย่างทำงานได้ดี คุณสามารถทำเครื่องหมายคำตอบที่ดีที่สุดเพื่อจบหัวข้อนี้ ขอให้เป็นวันที่ดี:)
Score:1
ธง us

คุณสมบัติที่รวมอยู่ในไฟล์ .xml คืออะไร ถ้ามี ตัวตน และ ผู้ใช้, สิทธิ์การเข้าถึงคุณสามารถลอง:

$pfs = นำเข้า-Clixml -Path OnPrem_PFPerms.xml
foreach($pf ใน $pfs)
{
เพิ่ม PublicFolderClientPermission -เอกลักษณ์ $pf.Identity -ผู้ใช้ $pf.User -AccessRights $pf.AccessRights
}

ตามคำสั่งของคุณด้านบน ดูเหมือนว่าจะส่งออกเฉพาะไฟล์ สิทธิ์การเข้าถึง วัตถุ. ในกรณีนี้ คุณอาจต้องส่งออกรายการ ACL ปัจจุบันใน Exchange Online เป็นไฟล์ .csv:

Get-PublicFolder -Recurse -ResultSize Unlimited | รับ PublicFolderClientPermission | Select-Object Identity,User,@{n="AccessRights";e={[String]($_.AccessRights)}} -ExpandProperty AccessRights | ส่งออก Csv pf.csv

และกำหนดสิทธิ์ของโฟลเดอร์สาธารณะให้กับผู้ใช้ของคุณอีกครั้งผ่าน PowerShell (สำหรับรายการสิทธิ์ที่มีอยู่ PowerShell จะรายงานคำเตือน: พบรายการอนุญาตที่มีอยู่สำหรับผู้ใช้):

$pfs = นำเข้า Csv pf.csv
foreach($pf ใน $pfs)
{
เพิ่ม PublicFolderClientPermission -เอกลักษณ์ $pf.Identity -ผู้ใช้ $pf.User -AccessRights $pf.AccessRights
}
Score:0
ธง cv

หากเซิร์ฟเวอร์ Exchange ต้นทางยังคงมีอยู่ คุณสามารถใช้สิ่งต่อไปนี้เพื่อส่งออกสิทธิ์ไคลเอนต์โฟลเดอร์สาธารณะเป็นไฟล์ CSV และนำเข้าไปยัง Office 365 คุณอาจต้องแก้ไขไฟล์ CSV ต้นทางเพื่อแก้ไขชื่อผู้ใช้ให้ตรงกับ Office ชื่อผู้ใช้ 365 สำหรับผู้ใช้แต่ละรายที่ปรากฏในสิทธิ์

ส่งออกสิทธิ์โฟลเดอร์สาธารณะเป็น CSV:

Get-PublicFolder -Recurse | รับ PublicFolderClientPermission | เลือกข้อมูลประจำตัว ผู้ใช้ @{ expression={$_.AccessRights}; label='AccessRights' } | ส่งออก Csv C:\Temp\PublicFolderClientPermission.csv

นำเข้าสิทธิ์โฟลเดอร์สาธารณะจาก CSV:

$Users= นำเข้า-CSV C:\Temp\PublicFolderClientPermission.csv foreach ($User ใน $Users){Get-PublicFolder -Identity $($User.identity) | เพิ่ม publicfolderclientpermission -AccessRights $User.AccessRights -User $User.User}

Michael Uray avatar
cn flag
น่าเสียดายที่เซิร์ฟเวอร์ Exchange ต้นทางไม่สามารถใช้งานได้อีกต่อไป ชื่อผู้ใช้/ชื่อกลุ่มใน O365 นั้นเหมือนกัน เนื่องจาก AD ภายในองค์กรของเราได้รับการซิงโครไนซ์กับ Azure AD
joeqwerty avatar
cv flag
มีการซิงค์ผู้ใช้ แต่สิทธิ์ไคลเอ็นต์ PF ในสถานที่อาจแสดงเป็น **doman\ชื่อผู้ใช้** ซึ่งในกรณีนี้ คุณจะต้องแก้ไขให้ตรงกับชื่อ Office 365
joeqwerty avatar
cv flag
คุณตรวจสอบไฟล์ XML แล้วหรือยัง สามารถคัดลอกสิทธิ์ไคลเอ็นต์ PF ไปยังไฟล์ CSV ได้หรือไม่ ถ้าใช่ คุณสามารถนำเข้าได้ด้วยคำสั่งนำเข้าในคำตอบของฉัน
Michael Uray avatar
cn flag
นั่นอาจใช้ได้กับการส่งออกเป็น CSV เช่นกัน แต่ในขณะเดียวกันฉันก็พบวิธีเรียกใช้โดยตรงผ่านไฟล์ XML อย่างไรก็ตาม ขอบคุณสำหรับคำแนะนำของคุณ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา