[玩转系统] SharePoint Online:使用 PowerShell 创建自定义权限级别
作者:精品下载站 日期:2024-12-14 14:25:48 浏览:14 分类:玩电脑
SharePoint Online:使用 PowerShell 创建自定义权限级别
要求:在 SharePoint Online 网站集中为“贡献但不删除”权限创建新的权限级别。
SharePoint Online 权限级别:
SharePoint 权限级别是用户可以在 SharePoint 中执行的一组操作,打包为一个组,以使权限管理更容易。因此,您不必为用户和组提供单独的权限,而是选择一个权限级别并将其分配给新用户。 (或者甚至将用户添加到具有关联的特定权限级别的组)。 SharePoint 中包含默认权限级别,例如:
- 完全控制 - 适用于网站集所有者。此权限级别包括所有可用权限,并授予分配的用户对站点及其所有资源的管理员级别访问权限。
- 设计 - 设计权限级别提供管理 SharePoint 网站内的列表、库和页面以及批准内容和管理网站外观的能力。
- 管理层次结构 - 除了编辑权限之外,您还可以创建和管理子网站。
- 编辑 - 分配给网站成员。使关联用户能够创建和管理列表和库及其内容。
- 批准 - 当内容配置为需要批准时,批准权限级别授予编辑和批准页面、列表项和文档的能力。
- 贡献 - 此权限级别提供查看、添加、更新和删除列表项和文档的能力。
- 读取 - 读取权限级别提供对站点资源的只读访问权限。他们可以查看页面、列出项目和下载文档。 在典型的团队网站中,默认情况下,访客组被授予读取权限。
- 受限访问:此权限无法手动设置。当授予最低级别对象访问权限而不授予父对象访问权限时,SharePoint 会自动分配该权限。
- 仅查看 - 仅查看权限类似于读取。它允许用户查看文件,但用户无法下载它们。
如何在 SharePoint Online 中创建权限级别?
在 SharePoint Online 中创建新的权限级别是一个简单的过程,只需单击几下即可完成。假设您拥有“完全控制”或“管理权限”访问权限,我将引导您完成创建新权限级别的步骤,向您展示如何在 SharePoint Online 中创建权限级别。在现实场景中通常需要“贡献而不删除”权限级别。比方说,您希望用户能够将文件添加到库中,但不能从库中删除文件。要实现这一点,我们只需复制“贡献”权限级别并从中取消“删除项目”权限即可!要在 SharePoint Online 中创建新的权限级别,请执行以下步骤:
- 转至 SharePoint 站点 >> 单击“设置”>>“站点权限”>>“高级权限设置”。 (在经典站点中,您可以单击站点设置>>站点权限)。
- 单击功能区中的权限级别按钮。
这将带您进入列出 SharePoint 中可用的所有默认权限级别及其相应描述的页面。现在,您可以添加权限级别或单击任何现有权限级别,复制,然后编辑新的权限级别以满足您的要求。
请勿更改任何默认权限级别,例如“完全控制”或“贡献”。为用户和组分配权限级别
权限级别准备就绪后,您可以通过单击“编辑用户权限”按钮来编辑权限以分配新的权限级别。这适用于任何类型的 SharePoint 网站,例如团队网站/组连接/非 Microsoft 365 组连接/通信网站。
- 导航至网站主页 >> 单击“设置”齿轮图标 >> 网站权限 >> 单击“高级权限设置”
- 如果需要,请中断权限继承,通过单击“编辑用户权限”按钮选择任何现有用户、SharePoint 组或安全组
通过选择相应的复选框,在站点级别设置用户的权限级别。
您还可以从列表设置/文档库设置中设置特定列表或文档库的权限。
请注意,自定义权限级别只能在网站集级别创建,因此如果您需要为另一个网站创建唯一的权限级别,则需要在那里再次创建。在网站集级别创建的权限级别会传播到子网站。
SharePoint Online PowerShell 创建权限级别
让我们自动执行上述步骤,以使用 PowerShell 创建自定义权限级别。以下是如何使用 PowerShell 在 SharePoint Online 中创建自定义权限级别:
#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\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
要获取基本权限枚举的所有值,请使用:[Enum]::GetNames(“Microsoft.SharePoint.Client.PermissionKind”) 为租户中的所有网站集创建自定义权限级别
如何在租户中的所有站点上创建自定义权限级别?
#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 Enterprise 网站集功能”。
详细信息:SharePoint Online 中缺少“仅查看”权限?这是修复方法!
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag