SharePoint Online: สร้างระดับสิทธิ์แบบกำหนดเองโดยใช้ PowerShell
ความต้องการ: สร้างระดับสิทธิ์ใหม่ในคอลเลกชันไซต์ SharePoint Online สำหรับสิทธิ์ "มีส่วนร่วมโดยไม่ต้องลบ"
ระดับสิทธิ์อนุญาตของ SharePoint Online:
ระดับสิทธิ์ของ SharePoint คือชุดของการดำเนินการที่ผู้ใช้สามารถดำเนินการใน SharePoint ซึ่งจัดแพคเกจเป็นกลุ่ม เพื่อให้การจัดการสิทธิ์ง่ายขึ้น ดังนั้น แทนที่จะให้สิทธิ์ส่วนบุคคลแก่ผู้ใช้และกลุ่ม คุณเลือกระดับสิทธิ์และกำหนดให้กับผู้ใช้ใหม่ (หรือแม้แต่เพิ่มผู้ใช้ในกลุ่มที่มีระดับสิทธิ์เฉพาะที่เกี่ยวข้อง) มีระดับสิทธิ์เริ่มต้นที่รวมอยู่ใน SharePoint เช่น:
- การควบคุมทั้งหมด - สำหรับเจ้าของไซต์คอลเลกชัน ระดับสิทธิ์นี้รวมสิทธิ์ที่มีอยู่ทั้งหมดและให้สิทธิ์การเข้าถึงระดับผู้ดูแลระบบแก่ผู้ใช้ที่ได้รับมอบหมายไปยังไซต์และทรัพยากรทั้งหมด
- การออกแบบ - ระดับสิทธิ์การออกแบบให้ความสามารถในการจัดการรายการ ไลบรารี และเพจภายในไซต์ SharePoint ตลอดจนอนุมัติเนื้อหาและจัดการรูปลักษณ์ของไซต์
- จัดการลำดับชั้น - สิ่งนี้ช่วยให้คุณสร้างและจัดการไซต์ย่อยนอกเหนือจากสิทธิ์ในการแก้ไข
- แก้ไข - มอบหมายให้กับสมาชิกของเว็บไซต์ ช่วยให้ผู้ใช้ที่เกี่ยวข้องสามารถสร้างและจัดการรายการและไลบรารีและเนื้อหาได้
- อนุมัติ - ระดับสิทธิ์อนุมัติให้ความสามารถในการแก้ไขและอนุมัติเพจ รายการ และเอกสาร เมื่อเนื้อหาได้รับการกำหนดค่าให้ต้องได้รับการอนุมัติ
- มีส่วนร่วม - ระดับสิทธิ์นี้ทำให้สามารถดู เพิ่ม อัปเดต และลบรายการและเอกสารได้
- อ่าน - ระดับสิทธิ์ในการอ่านให้การเข้าถึงทรัพยากรของไซต์แบบอ่านอย่างเดียว สามารถดูเพจ รายการ และดาวน์โหลดเอกสารได้ กลุ่มผู้เยี่ยมชมได้รับสิทธิ์ในการอ่านตามค่าเริ่มต้นในไซต์ทีมทั่วไป
- การเข้าถึงแบบจำกัด: ไม่สามารถตั้งค่าการอนุญาตด้วยตนเองได้ จะถูกกำหนดโดย SharePoint โดยอัตโนมัติเมื่อมีการให้สิทธิ์การเข้าถึงแก่ออบเจ็กต์ระดับต่ำสุดโดยไม่ต้องให้สิทธิ์การเข้าถึงแก่พาเรนต์
- ดูอย่างเดียว - ดูอย่างเดียว สิทธิ์จะคล้ายกับการอ่าน ช่วยให้ผู้ใช้สามารถดูไฟล์ได้ แต่ผู้ใช้ไม่สามารถดาวน์โหลดไฟล์ได้
จะสร้างระดับสิทธิ์ใน SharePoint Online ได้อย่างไร
การสร้างระดับสิทธิ์ใหม่ใน SharePoint Online เป็นกระบวนการง่ายๆ ที่สามารถทำได้ด้วยการคลิกเพียงไม่กี่ครั้ง สมมติว่าคุณมีสิทธิ์การเข้าถึง "การควบคุมทั้งหมด" หรือ "จัดการสิทธิ์" ฉันจะแสดงวิธีสร้างระดับสิทธิ์ใน SharePoint Online โดยแนะนำคุณตลอดขั้นตอนการสร้างระดับสิทธิ์ใหม่ มักจะต้องใช้ระดับสิทธิ์ "มีส่วนร่วมโดยไม่ต้องลบ" ในสถานการณ์จริง สมมติว่า คุณต้องการให้ผู้ใช้สามารถเพิ่มไฟล์ลงในไลบรารีได้ แต่ไม่สามารถลบไฟล์ออกจากไลบรารีได้ เพื่อให้บรรลุเป้าหมายนี้ เราสามารถคัดลอกระดับสิทธิ์ "มีส่วนร่วม" และถอดสิทธิ์ "ลบรายการ" ออกได้! เมื่อต้องการสร้างระดับสิทธิ์ใหม่ใน SharePoint Online ให้ทำตามขั้นตอนเหล่านี้:
- ไปที่ไซต์ SharePoint >> คลิกที่การตั้งค่า >> สิทธิ์ของไซต์ >> การตั้งค่าสิทธิ์ขั้นสูง (ในไซต์แบบคลาสสิก คุณสามารถคลิกที่การตั้งค่าไซต์ >> สิทธิ์ของไซต์)
- คลิกที่ปุ่ม ระดับสิทธิ์ จาก Ribbon
ซึ่งจะนำคุณไปยังเพจซึ่งแสดงรายการระดับสิทธิ์เริ่มต้นทั้งหมดที่มีอยู่ใน SharePoint พร้อมคำอธิบายที่เกี่ยวข้อง ตอนนี้คุณสามารถเพิ่มระดับสิทธิ์หรือคลิกที่ระดับสิทธิ์ที่มีอยู่ คัดลอกแล้วแก้ไขระดับสิทธิ์ใหม่เพื่อเติมเต็มความต้องการของคุณ
กำหนดระดับสิทธิ์ให้กับผู้ใช้และกลุ่ม
เมื่อระดับสิทธิ์พร้อมแล้ว คุณสามารถแก้ไขสิทธิ์ได้โดยคลิกที่ปุ่ม "แก้ไขสิทธิ์ผู้ใช้" เพื่อกำหนดระดับสิทธิ์ใหม่ สิ่งนี้ใช้กับไซต์ SharePoint ทุกประเภท เช่น ไซต์ทีม/กลุ่มที่เชื่อมต่อ/ไซต์ที่ไม่ใช่ Microsoft 365 ที่เชื่อมต่อ/ไซต์การสื่อสาร
- ไปที่หน้าแรกของไซต์ >> คลิกที่ไอคอนรูปเฟืองการตั้งค่า >> การอนุญาตไซต์ >> คลิกที่การตั้งค่าการอนุญาตขั้นสูง
- แบ่งการสืบทอดสิทธิ์หากจำเป็น เลือกผู้ใช้ที่มีอยู่ กลุ่ม SharePoint หรือกลุ่มความปลอดภัยโดยคลิกที่ปุ่ม "แก้ไขสิทธิ์ของผู้ใช้"
ตั้งค่าระดับสิทธิ์สำหรับผู้ใช้ในระดับไซต์โดยเลือกช่องทำเครื่องหมายที่เกี่ยวข้อง
คุณยังสามารถตั้งค่าสิทธิ์สำหรับรายการหรือไลบรารีเอกสารเฉพาะได้จากการตั้งค่ารายการ/การตั้งค่าไลบรารีเอกสาร
โปรดทราบว่าระดับสิทธิ์แบบกำหนดเองสามารถสร้างได้ในระดับไซต์คอลเลกชันเท่านั้น ดังนั้น หากคุณต้องการสร้างระดับสิทธิ์เฉพาะสำหรับไซต์อื่น คุณจะต้องสร้างระดับสิทธิ์นั้นอีกครั้งที่นั่น ระดับสิทธิ์ที่สร้างขึ้นในระดับไซต์คอลเลกชันจะเผยแพร่ไปยังไซต์ย่อย
SharePoint Online PowerShell เพื่อสร้างระดับสิทธิ์
มาทำตามขั้นตอนข้างต้นโดยอัตโนมัติเพื่อสร้างระดับสิทธิ์ที่กำหนดเองโดยใช้ PowerShell ต่อไปนี้เป็นวิธีสร้างระดับสิทธิ์แบบกำหนดเองใน SharePoint Online โดยใช้ PowerShell:
#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 for Processing
$SiteUrl = "https://crescent.sharepoint.com"
$SourcePermissionLevelName ="Contribute"
$TargetPermissionLevelName ="Contribute Without Delete"
Try {
#Get Credentials to connect
$Cred = Get-Credential
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteUrl)
$Ctx.Credentials = $Credentials
$Web = $Ctx.Web
#Get the source permission level
$RoleDefinitions = $web.RoleDefinitions
$Ctx.Load($RoleDefinitions)
$SourceRoleDefinition = $RoleDefinitions.GetByName($SourcePermissionLevelName)
$Ctx.Load($SourceRoleDefinition)
$Ctx.ExecuteQuery()
#get base permissions from the source and remove "Delete"
$TargetBasePermissions = $SourceRoleDefinition.BasePermissions
$TargetBasePermissions.clear([Microsoft.SharePoint.Client.PermissionKind]::DeleteListItems)
#check if the given permission level exists already!
$TargetPermissionLevel = $RoleDefinitions | Where-Object { $_.Name -eq $TargetPermissionLevelName }
if($TargetPermissionLevel -eq $null)
{
#Create new permission level from source permission level
$PermissionCreationInfo = New-Object Microsoft.SharePoint.Client.RoleDefinitionCreationInformation
$PermissionCreationInfo.Name = $TargetPermissionLevelName
$PermissionCreationInfo.Description = $TargetPermissionLevelName
$PermissionCreationInfo.BasePermissions = $TargetBasePermissions
#Add the role definitin to the site
$TargetPermissionLevel = $Web.RoleDefinitions.Add($PermissionCreationInfo)
$Ctx.ExecuteQuery()
Write-host "New Permission Level Created Successfully!" -ForegroundColor Green
}
else
{
Write-host "Permission Level Already Exists!" -ForegroundColor Red
}
}
Catch {
write-host -f Red "Error Creating Permission Level!" $_.Exception.Message
}
สคริปต์นี้คัดลอกระดับสิทธิ์ที่มีอยู่และสร้างระดับสิทธิ์ใหม่ แทนที่จะคัดลอกและจัดการระดับสิทธิ์ที่มีอยู่ คุณสามารถสร้างระดับสิทธิ์ใหม่ตั้งแต่ต้นได้
#Create base Permission set
$Permissions = New-Object Microsoft.SharePoint.Client.BasePermissions
#Add permissions to it
$Permissions.Set([Microsoft.SharePoint.Client.PermissionKind]::ViewListItems)
$Permissions.Set([Microsoft.SharePoint.Client.PermissionKind]::ViewVersions)
SharePoint Online: PnP PowerShell เพื่อสร้างระดับสิทธิ์แบบกำหนดเอง
มาสร้างระดับสิทธิ์ใหม่ “มีส่วนร่วมโดยไม่ต้องลบ” โดยการคัดลอกระดับสิทธิ์สนับสนุนและลบความสามารถในการลบออกโดยใช้ PnP PowerShell cmdlet Add-PnPRoleDefinition
#Set Variables
$SiteURL = "https://crescent.sharepoint.com/sites/Marketing"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)
#Get Permission level to copy
$ContributeRole = Get-PnPRoleDefinition -Identity "Contribute"
#Create a custom Permission level and exclude delete from contribute
Add-PnPRoleDefinition -RoleName "Contribute without Delete" -Clone $ContributeRole -Exclude DeleteListItems, DeleteVersions -Description "Contribute without delete permission"
ในทำนองเดียวกัน คุณสามารถคัดลอกระดับสิทธิ์และเพิ่มสิทธิ์ลงไปได้ เช่น คัดลอกระดับสิทธิ์การอ่านและเพิ่ม "AddListItems" และ "EditListItems" ลงไป
#Variables
$SiteURL = "https://crescent.sharepoint.com/sites/Retail"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
#Create a custom permission level
$BasePermissionLevel = Get-PnPRoleDefinition -Identity "Read"
#Set Parameters for new permission level
$NewPermissionLevel= @{
Include = 'EditListItems', 'AddListItems'
Description = "Read Permissions with Add and Edit List Items"
RoleName = "Read with Contribute to List Items"
Clone = $BasePermissionLevel
}
#Create new permission level
Add-PnPRoleDefinition @NewPermissionLevel
สร้างระดับสิทธิ์แบบกำหนดเองสำหรับคอลเลกชันไซต์ทั้งหมดในผู้เช่า
แล้วการสร้างระดับสิทธิ์แบบกำหนดเองบนไซต์ทั้งหมดในผู้เช่าล่ะ
#Parameters
$Domain = "CrescentIntranet" #Domain Name in SharePoint Online. E.g. https://Crescent.sharepoint.com
$NewPermissionLevelName = "Contribute without Delete"
$BasePermissionLevelName = "Contribute"
#Frame Tenant URL and Tenant Admin URL
$TenantURL = "https://$Domain.SharePoint.com"
$TenantAdminURL = "https://$Domain-Admin.SharePoint.com"
#Get Credentials to connect
$Cred = Get-Credential
#Connect to Admin Center
Connect-PnPOnline -Url $TenantAdminURL -Credentials $Cred
#Get All Site collections - Filter BOT and MySite Host
$Sites = Get-PnPTenantSite -Filter "Url -like '$TenantURL'"
#Iterate through all site collections
$Sites | ForEach-Object {
#Connect to each site collection
Connect-PnPOnline -Url $_.URL -Credentials $Cred
#check if the given permission level exists already!
$NewPermissionLevel = Get-PnPRoleDefinition | Where-Object { $_.Name -eq $NewPermissionLevelName }
If($NewPermissionLevel -eq $null)
{
#Get Permission level to copy
$BaseRoleDefinition = Get-PnPRoleDefinition -Identity $BasePermissionLevelName
#Create a custom Permission level and exclude delete from contribute
Add-PnPRoleDefinition -RoleName $NewPermissionLevelName -Clone $BaseRoleDefinition -Exclude DeleteListItems, DeleteVersions -Description "Contribute without delete permission" | Out-Null
Write-host "Created Permission Level at $($_.URL)" -f Green
}
Else
{
Write-host "Permission Level Already Exists at $($_.URL)" -ForegroundColor Yellow
}
}
สุดท้ายแต่ไม่ท้ายสุด: อะไรคือความแตกต่างระหว่างสิทธิ์ในการแก้ไขและการสนับสนุนใน SharePoint Online ผู้ใช้ที่มีสิทธิ์ "แก้ไข" สามารถเพิ่ม แก้ไข และลบรายการและไลบรารีใน SharePoint ได้ อย่างไรก็ตาม สิทธิ์การมีส่วนร่วมนั้นจำกัดอยู่ที่การสนับสนุนรายการและไฟล์ (เพิ่ม แก้ไข และลบ) ไปยังรายการและไลบรารีที่มีอยู่ โดยไม่สามารถเพิ่ม แก้ไข และลบรายการและไลบรารีได้
เมื่อต้องการอัปเดตระดับสิทธิ์ที่มีอยู่ใน SharePoint Online ให้ใช้: วิธีแก้ไขระดับสิทธิ์ใน SharePoint Online
คำถามที่พบบ่อย:
จะให้สิทธิ์ระดับโฟลเดอร์ใน SharePoint Online ได้อย่างไร
หากต้องการให้สิทธิ์แก่โฟลเดอร์ใน SharePoint Online: คลิกที่ "จัดการการเข้าถึง" จากเมนูของโฟลเดอร์ >> คลิกที่ลิงก์ "ขั้นสูง" >> หยุดการรับสิทธิ์หากโฟลเดอร์สืบทอดสิทธิ์จากผู้ปกครอง >> คลิกที่ ปุ่ม “ให้สิทธิ์” เพื่อเพิ่มผู้ใช้ลงในโฟลเดอร์ ป้อนชื่อผู้ใช้และกลุ่มแล้วคลิกปุ่ม “แชร์ ” เพื่อเพิ่มสิทธิ์ให้กับโฟลเดอร์
ข้อมูลเพิ่มเติม: ตั้งค่าสิทธิ์ระดับโฟลเดอร์ใน SharePoint Online
ระดับสิทธิ์การดู SharePoint Online เท่านั้นหายไปใช่หรือไม่
เปิดใช้งาน "ฟีเจอร์คอลเลกชันไซต์องค์กรของ SharePoint Server" ที่ไซต์คอลเลกชันและระดับไซต์
ข้อมูลเพิ่มเติม: สิทธิ์ "ดูอย่างเดียว" หายไปใน SharePoint Online หรือไม่ นี่คือการแก้ไข!

