SharePoint Online: PowerShell เพื่อแบ่งการสืบทอดสิทธิ์ของโฟลเดอร์
ความต้องการ: แบ่งการสืบทอดสิทธิ์ของโฟลเดอร์ใน SharePoint Online โดยใช้ PowerShell
จะแยกการสืบทอดของโฟลเดอร์ใน SharePoint Online ได้อย่างไร
ตามค่าเริ่มต้น โฟลเดอร์ใน SharePoint Online จะสืบทอดสิทธิ์จากวัตถุหลัก เช่น ไลบรารีเอกสารหรือรายการ ในบางกรณี คุณอาจต้องการให้สิทธิ์แก่ผู้ใช้สำหรับโฟลเดอร์ใดโฟลเดอร์หนึ่งจากที่ผู้ใช้มีสำหรับไลบรารีหรือไซต์ ตัวอย่างเช่น คุณอาจต้องการให้กลุ่มผู้ใช้เข้าถึงโฟลเดอร์เอกสารแบบอ่านอย่างเดียว ในขณะเดียวกันก็อนุญาตให้ผู้ใช้รายอื่นเพิ่ม แก้ไข และลบรายการในโฟลเดอร์นั้นได้ หากต้องการให้สิทธิ์เฉพาะแก่โฟลเดอร์ คุณต้องทำลายการสืบทอดสิทธิ์ของโฟลเดอร์ก่อน
ต่อไปนี้เป็นวิธีการแบ่งการสืบทอดสิทธิ์ใน SharePoint Online:
- นำทางไปยังไลบรารี SharePoint Online ของคุณซึ่งเก็บโฟลเดอร์ไว้
เลือกโฟลเดอร์ >> คลิกที่ "จัดการการเข้าถึง" จากเมนูบริบทของโฟลเดอร์ >> คลิกที่ลิงก์ "ขั้นสูง" ในป๊อปอัปจัดการการเข้าถึง
-
ในหน้าการอนุญาต หากโฟลเดอร์สืบทอดการอนุญาตจากพาเรนต์ เราจะต้องทำลายการสืบทอดการอนุญาตโดยคลิกปุ่ม "หยุดการสืบทอดการอนุญาต" ยืนยันข้อความแจ้งหนึ่งครั้ง
ตอนนี้คุณสามารถเพิ่มหรือลบผู้ใช้ออกจากโฟลเดอร์ได้โดยคลิกปุ่ม "ให้สิทธิ์" จากกลุ่มให้สิทธิ์ เมื่อคุณหยุดสืบทอดสิทธิ์ - ผู้ใช้และกลุ่มทั้งหมดจะถูกคัดลอกจากรายการหรือไลบรารีไปยังสิทธิ์ของโฟลเดอร์ จากจุดนี้ การเปลี่ยนแปลงการอนุญาตในอนาคตที่ทำกับออบเจ็กต์หลักจะไม่ส่งผลต่อโฟลเดอร์อีกต่อไป!
SharePoint Online: PowerShell เพื่อทำลายโฟลเดอร์สืบทอดสิทธิ์
การทำลายการสืบทอดสิทธิ์เป็นงานทั่วไปที่ดำเนินการบนทรัพยากร SharePoint Online เช่น ไซต์ รายการ และรายการข้อมูล มาทำลายการสืบทอดสิทธิ์ของโฟลเดอร์โดยใช้ PowerShell เพื่อให้สิทธิ์เฉพาะแก่โฟลเดอร์ใน SharePoint Online:
#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
#Variables
$SiteURL = "https://crescent.sharepoint.com/sites/marketing/"
$FolderServerRelativeURL = "/sites/marketing/Shared Documents/2018"
Try {
#Get Credentials to connect
$Cred= Get-Credential
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
#Get the Folder
$Folder = $Ctx.Web.GetFolderByServerRelativeUrl($FolderServerRelativeURL)
$Ctx.Load($Folder)
$Ctx.ExecuteQuery()
#Break Permission inheritence of the folder - Keep all existing folder permissions & keep Item level permissions
$Folder.ListItemAllFields.BreakRoleInheritance($True,$True)
$Ctx.ExecuteQuery()
Write-host "Folder's Permission Inheritance Broken Successfully!" -ForegroundColor Green
}
Catch {
write-host -f Red "Error breaking Folder Permission Inheritance!" $_.Exception.Message
}
สิ่งนี้อาจมีประโยชน์ในสถานการณ์ที่ผู้ใช้หรือกลุ่มเฉพาะจำเป็นต้องได้รับสิทธิ์ในการเข้าถึงโฟลเดอร์ แต่ไม่ใช่ทั้งไซต์ รายการ หรือไลบรารี
หยุดการสืบทอดโฟลเดอร์ใน SharePoint Online โดยใช้ PnP PowerShell
จะเป็นการดีหรือไม่ที่จะตรวจสอบว่าโฟลเดอร์นั้นมีสิทธิ์เฉพาะอยู่แล้วก่อนที่จะทำลายสิทธิ์ของโฟลเดอร์นั้น เรามาทำสิ่งนั้นก่อนแล้วจึงทำลายการอนุญาตของโฟลเดอร์โดยใช้ PnP PowerShell:
#Variables
$SiteURL = "https://crescent.sharepoint.com/sites/marketing/"
$FolderServerRelativeURL = "/sites/marketing/Shared Documents/2018"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential) #-Interactive
#Get the Folder
$Folder = Get-PnPFolder -Url $FolderServerRelativeURL -Includes ListItemAllFields.HasUniqueRoleAssignments
If($Folder.ListItemAllFields.HasUniqueRoleAssignments)
{
Write-host "Folder is already with broken permissions!" -f Yellow
}
Else
{
#Break Folder permissions - keep all existing permissions & keep Item level permissions
$Folder.ListItemAllFields.BreakRoleInheritance($True,$True)
Invoke-PnPQuery
Write-host "Folder's Permission Inheritance is broken!!" -f Green
}
โดยสรุป การทำลายการสืบทอดสิทธิ์ของโฟลเดอร์ใน SharePoint Online เป็นกระบวนการที่ค่อนข้างง่ายที่สามารถทำได้ผ่านอินเทอร์เฟซผู้ใช้หรือ PowerShell การทำลายการสืบทอดทำให้สามารถกำหนดสิทธิ์เฉพาะให้กับโฟลเดอร์ได้ โดยอนุญาตให้ผู้ใช้หรือกลุ่มเฉพาะเจาะจงสามารถเข้าถึงโฟลเดอร์ได้
เมื่อการสืบทอดสิทธิ์ของโฟลเดอร์เสียหาย คุณสามารถเพิ่มหรือลบผู้ใช้ออกจากโฟลเดอร์ได้:
- SharePoint Online: เพิ่มผู้ใช้หรือกลุ่มลงในโฟลเดอร์สิทธิ์โดยใช้ PowerShell
- SharePoint Online: วิธีลบผู้ใช้หรือกลุ่มออกจากการอนุญาตโฟลเดอร์โดยใช้ PowerShell

