当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] SharePoint Online:PowerShell 获取列表权限

作者:精品下载站 日期:2024-12-14 14:59:37 浏览:15 分类:玩电脑

SharePoint Online:PowerShell 获取列表权限


要求:使用 PowerShell 获取 SharePoint Online 中的列表权限。

如何获取 SharePoint Online 中的列表权限?

如果您是 SharePoint 管理员,您迟早需要在 SharePoint Online 中获得列表权限。该过程并不复杂,但您需要遵循几个步骤。在这篇博文中,我将逐步引导您完成在列表或库上检索和显示用户权限级别的过程。我们还将了解如何使用 PowerShell 在 SharePoint Online 中获取列表权限。让我们开始吧!

要查看应用于 SharePoint Online 列表的权限,请执行以下步骤:

  1. 导航到 SharePoint Online 列表 >> 单击设置齿轮 >> 列表设置。
  2. 单击列表设置页面上的“此列表上的权限”链接。
  3. 此页面为您提供特定列表上的所有权限。

    [玩转系统] SharePoint Online:PowerShell 获取列表权限

但是,从 SharePoint Online 用户界面中的列表和库导出权限可能是一个复杂且耗时的过程。因此,让我们通过使用 PowerShell 获取 SharePoint Online 中的列表权限来简化此任务。

SharePoint Online PowerShell 获取列表权限

幸运的是,我们可以使用 PowerShell 在 SharePoint Online 中生成各个级别的权限报告:使用 PowerShell 在 SharePoint Online 中生成权限报告,以下是在 SharePoint Online 中获取列表权限并导出为 CSV 的 PowerShell:


#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"
  
#Function to Get List Permissions
Function Get-SPOListPermission([String]$SiteURL, [String]$ListName)
{
    Try{
        #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 List
        $List = $Ctx.Web.Lists.GetByTitle($ListName)
        $Ctx.Load($List)
        $Ctx.ExecuteQuery()
 
        #Get permissions assigned to the List
        $RoleAssignments = $List.RoleAssignments
        $Ctx.Load($RoleAssignments)
        $Ctx.ExecuteQuery()
 
        #Loop through each permission assigned and extract details
        $PermissionCollection = @()
        Foreach($RoleAssignment in $RoleAssignments)
        { 
            $Ctx.Load($RoleAssignment.Member)
            $Ctx.executeQuery()
 
            #Get the User Type
            $PermissionType = $RoleAssignment.Member.PrincipalType
 
            #Get the Permission Levels assigned
            $Ctx.Load($RoleAssignment.RoleDefinitionBindings)
            $Ctx.ExecuteQuery()
            $PermissionLevels = ($RoleAssignment.RoleDefinitionBindings | Select -ExpandProperty Name) -join ","
             
            #Get the User/Group Name
            $Name = $RoleAssignment.Member.Title # $RoleAssignment.Member.LoginName
 
            #Add the Data to Object
            $Permissions = New-Object PSObject
            $Permissions | Add-Member NoteProperty Name($Name)
            $Permissions | Add-Member NoteProperty Type($PermissionType)
            $Permissions | Add-Member NoteProperty PermissionLevels($PermissionLevels)
            $PermissionCollection += $Permissions
        }
        Return $PermissionCollection
    }
    Catch {
    write-host -f Red "Error Getting List Permissions!" $_.Exception.Message
    }
}
  
#Set Config Parameters
$SiteURL="https://crescent.sharepoint.com/sites/Marketing"
$ListName="Documents"
$ReportFile = "C:\Temp\ListPermissions.csv"
  
#Get Credentials to connect
$Cred= Get-Credential
  
#Call the function to Get List Permissions
$ListPermissions = Get-SPOListPermission $SiteURL $ListName

#Get List Permissions
$ListPermissions

#Export List Permissions to CSV File
$ListPermissions | Export-CSV $ReportFile -NoTypeInformation

导出的 CSV 文件如下所示:

[玩转系统] SharePoint Online:PowerShell 获取列表权限

总之,使用 PowerShell 获取 SharePoint Online 中的列表权限可以成为管理 SharePoint 环境的强大工具。通过利用本文中提供的脚本,您可以快速轻松地从 SharePoint 列表中导出权限,从而帮助您维护安全且有组织的环境。

我们还可以使用 PnP PowerShell 将列表或文档库权限导出到 CSV 报告:使用 PnP PowerShell 获取 SharePoint Online 文档库权限并导出到 CSV

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯