Phá vỡ tính kế thừa quyền và thêm-xóa người dùng khỏi danh sách SharePoint bằng PowerShell
Theo mặc định, Danh sách và Thư viện SharePoint kế thừa quyền từ site mẹ của chúng khi được tạo. Đôi khi bạn có thể muốn triển khai các quyền duy nhất ở cấp độ danh sách SharePoint. Ví dụ: nếu có những người dùng chỉ nên truy cập vào một danh sách cụ thể trong trang SharePoint chứ không phải bất kỳ đối tượng nào khác. Vì vậy, để thiết lập quyền duy nhất trên trang SharePoint, danh sách, thư viện, thư mục hoặc mục, trước tiên chúng ta nên ngắt kế thừa quyền. Chỉ cần làm theo các bước sau:
- Điều hướng đến Danh sách hoặc Thư viện SharePoint mục tiêu của bạn
- Nhấp vào Cài đặt danh sách >> rồi nhấp vào Quyền cho danh sách này.
Từ ruy-băng, nhấp vào biểu tượng “Dừng kế thừa quyền” như trong hình bên dưới. Việc phá vỡ kế thừa quyền sẽ không xóa tất cả các quyền hiện có ngay lập tức! Bản sao quyền của cha mẹ được áp dụng cho đối tượng con (chẳng hạn như Danh sách/mục) trước khi quyền bị phá vỡ.
- Xóa Người dùng hoặc Nhóm cần có quyền truy cập vào danh sách này.
- Cấp quyền cho những người dùng và nhóm bổ sung cần có quyền truy cập vào danh sách này.
SharePoint PowerShell để ngắt kế thừa quyền:
Để ngắt kế thừa quyền trên trang hoặc danh sách SharePoint, hãy sử dụng tập lệnh PowerShell này.
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
}
}
Để xóa tất cả các quyền đã được kế thừa vào danh sách, hãy đặt biến $CopyParentPermissions thành $False.
Thêm quyền vào danh sách SharePoint bằng PowerShell:
Sau khi quyền của cha mẹ bị ngắt, chúng tôi có thể thêm hoặc xóa người dùng khỏi danh sách bằng PowerShell. Sử dụng PowerShell này trong SharePoint để thêm quyền vào danh sách.
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
}
Làm cách nào để xóa quyền khỏi Danh sách SharePoint bằng PowerShell?
Đảm bảo rằng bạn đã phá vỡ tính kế thừa quyền trước khi chạy tập lệnh này.
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 để xóa tất cả quyền khỏi danh sách:
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)
}
}
