ค้นหาเว็บไซต์

แบ่งการสืบทอดสิทธิ์และเพิ่ม-ลบผู้ใช้ไปยังรายการ SharePoint โดยใช้ PowerShell


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

  • นำทางไปยังรายการหรือไลบรารี SharePoint เป้าหมายของคุณ
  • คลิกที่การตั้งค่ารายการ >> จากนั้นคลิกการอนุญาตสำหรับรายการนี้
  • จากริบบิ้น คลิกที่ไอคอน "หยุดการรับสิทธิ์" ดังภาพด้านล่าง การทำลายการสืบทอดสิทธิ์จะไม่ลบสิทธิ์ที่มีอยู่ทั้งหมดทันที! สำเนาสิทธิ์ของผู้ปกครองจะถูกปรับใช้กับออบเจ็กต์ลูก (เช่น รายการ/รายการ) ก่อนที่สิทธิ์อนุญาตจะใช้งานไม่ได้

  • ลบผู้ใช้หรือกลุ่มที่ไม่จำเป็นต้องมีสิทธิ์เข้าถึงรายการนี้
  • ให้สิทธิ์แก่ผู้ใช้และกลุ่มเพิ่มเติมที่ต้องการเข้าถึงรายการนี้
ตรวจสอบให้แน่ใจว่าคุณได้ทำลายการสืบทอดสิทธิ์ก่อนที่จะเพิ่มหรือเอาผู้ใช้ออกจากรายการ SharePoint มิฉะนั้น คุณจะได้รับข้อยกเว้น “การดำเนินการนี้ไม่ได้รับอนุญาตบนวัตถุที่สืบทอดสิทธิ์”!

SharePoint PowerShell ที่จะทำลายการสืบทอดสิทธิ์:

เมื่อต้องการหยุดการสืบทอดสิทธิ์บนไซต์หรือรายการ SharePoint ให้ใช้สคริปต์ PowerShell นี้


Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

#Configuration Parameters
$WebURL="https://intranet.crescent.com"
$ListName="Contacts"
$CopyParentPermissions = $True

#Get the List
$Web = Get-SPWeb $WebURL
$List = $web.Lists.TryGetList($ListName)

If ($List -ne $null)
{
    if ($List.HasUniqueRoleAssignments -eq $False)
    {
        $List.BreakRoleInheritance($CopyParentPermissions)
        Write-host "Stopped Inheriting Permissions from the parent." -f Green
    }
    else
    {
        write-host "List is already using Unique Permissions!" -f Red
    }
}

หากต้องการลบสิทธิ์ทั้งหมดที่สืบทอดมาจากรายการแล้ว ให้ตั้งค่าตัวแปร $CopyParentPermissions เป็น $False

เพิ่มสิทธิ์ในรายการ SharePoint โดยใช้ PowerShell:

เมื่อการอนุญาตถูกทำลายจากผู้ปกครอง เราสามารถเพิ่มหรือลบผู้ใช้ออกจากรายการโดยใช้ PowerShell ใช้ PowerShell นี้ใน SharePoint เพื่อเพิ่มสิทธิ์ให้กับรายการ


Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

#Configuration Parameters
$WebURL="https://intranet.crescent.com"
$ListName="Contacts"

#Get the List
$Web = Get-SPWeb $WebURL
$List = $web.Lists.TryGetList($ListName)

If ($List -ne $null)
{
    #Grant contribute Permission to a User account
    $UserAccount="Crescent\Omar"
    $User = $web.EnsureUser($UserAccount)
    $RoleDefinition = $Web.RoleDefinitions["Contribute"]
    $RoleAssignment = New-Object Microsoft.SharePoint.SPRoleAssignment($User)
    $RoleAssignment.RoleDefinitionBindings.Add($RoleDefinition)
    $List.RoleAssignments.Add($RoleAssignment)
    $List.Update()
    Write-host "Permissions Granted to User Account: $UserAccount" -f Green     

    #Grant Read access to the Members SharePoint Group
    $GroupName="Crescent Intranet Members"
    $Group = $Web.SiteGroups[$GroupName]
    $RoleDefinition = $Web.RoleDefinitions["Read"]
    $RoleAssignment = new-object Microsoft.SharePoint.SPRoleAssignment($Group)
    $RoleAssignment.RoleDefinitionBindings.Add($RoleDefinition);  
    $List.RoleAssignments.Add($RoleAssignment)  
    $List.Update() 
    Write-host "Permissions Granted to SharePoint Group: $GroupName" -f Green
} 

วิธีการเกี่ยวกับการลบสิทธิ์ออกจากรายการ SharePoint โดยใช้ PowerShell

ตรวจสอบให้แน่ใจว่าคุณได้ทำลายการสืบทอดสิทธิ์ก่อนที่จะเรียกใช้สคริปต์นี้


Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

#Configuration Parameters
$WebURL="https://intranet.crescent.com"
$ListName="Contacts"

#Get the List
$Web = Get-SPWeb $WebURL
$List = $web.Lists.TryGetList($ListName)

If ($List -ne $null)
{
    #Remove User Permissions from the List
    $UserAccount="Crescent\Omar"
    $User = $web.EnsureUser($UserAccount)
    $List.RoleAssignments.Remove($User)
    $List.Update()
    Write-host "Permissions Removed from the User Account: $UserAccount" -f Green     

    #Revoke permission from a SharePoint Group
    $GroupName="Crescent Intranet Members"
    $Group = $Web.SiteGroups[$GroupName]
    $List.RoleAssignments.Remove($Group)  
    $List.Update() 
    Write-host "Permissions Revoked from SharePoint Group: $GroupName" -f Green
}

PowerShell เพื่อลบสิทธิ์ทั้งหมดออกจากรายการ:


Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

#Configuration Parameters
$WebURL="https://intranet.crescent.com"
$ListName="Contacts"

#Get the List
$Web = Get-SPWeb $WebURL
$List = $web.Lists.TryGetList($ListName)

If ($List -ne $null)
{
    #Get All permissions applied to List
    $RoleAssignmentCount = $List.RoleAssignments.Count

    #Remove All Permissions from the List
    For ($i= $RoleAssignmentCount-1; $i -ge 0; $i--)
    {
        Write-host "Removing Permission from:"$List.RoleAssignments[$i].Member.name
        $List.RoleAssignments.Remove($i)
    }
}

บทความที่เกี่ยวข้อง