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

[玩转系统] 使用 PowerShell 获取具有“完全控制”(所有者)权限的所有 SharePoint Online 用户和组

作者:精品下载站 日期:2024-12-14 21:13:36 浏览:13 分类:玩电脑

使用 PowerShell 获取具有“完全控制”(所有者)权限的所有 SharePoint Online 用户和组


要求:在 SharePoint Online 网站中查找具有“完全控制”权限的所有用户和组。

如何在 SharePoint Online 中获得完全控制的用户和组?

在 SharePoint Online 中,可以将权限分配给用户和组以控制对网站内容的访问。最高级别的权限之一是“完全控制”,它使用户能够完全访问所有网站内容并能够管理其他人的权限。有时您可能需要获取在 SharePoint Online 网站中具有完全控制权限的用户列表。该过程相对简单,如果您想要审核用户权限,它会很有帮助。

  1. 登录您的 SharePoint Online 网站 >> 单击“设置”齿轮 >> 单击“网站权限”链接。
  2. 在“权限”面板中,单击“高级权限设置”。关联。这将带您进入网站权限页面,您将在其中获得授予该网站权限的所有用户和组。

    [玩转系统] 使用 PowerShell 获取具有“完全控制”(所有者)权限的所有 SharePoint Online 用户和组

使用 PowerShell 从网站集中获取具有“完全控制”权限的所有组

让我们获取具有完全控制权限的所有组,然后获取给定网站集中这些组的成员。


#Set Parameters
$AdminCenterURL="https://crescent-admin.sharepoint.com"
$SiteUrl = "https://crescent.sharepoint.com/sites/oncology"

#Connect to SharePoint Online
Connect-SPOService -Url $AdminCenterURL -credential (Get-Credential)

 #Get all Groups from the site
$SiteGroups = Get-SPOSiteGroup -Site $siteURL

#Get Group info that have "Full Control" Permissions
ForEach ($Group in $SiteGroups)
{
    If($Group.Roles.Contains("Full Control"))
    {
        Write-Host -f Yellow $Group.Title
        #Get each member of the group
        ForEach($User in $Group.Users | Where{$_.contains("@")}) #Exclude system Users
        {
            write-host -f Green $User
        }
    }
} 

PowerShell 从所有站点获取具有“完全控制”访问权限的组中的所有用户:

如何从所有网站集中检索具有完全控制权限的所有 SharePoint Online 组?


#Variables
$AdminCenterURL = "https://crescent-admin.sharepoint.com/"
 
#Connect to SharePoint Online
Connect-SPOService -url $AdminCenterURL -Credential (Get-Credential)
 
#Get all Site collections
$Sites = Get-SPOSite -Limit All

#Loop through site collections
ForEach($Site in $Sites)
{
    Write-host -f Cyan "Searching site: $($Site.URL)"
    #Get all Groups from the site permissions
    $SiteGroups = Get-SPOSiteGroup -Site $Site | Where { $_.Roles -ne $NULL -and $_.Users -ne $NULL}

    #Get Group info and members that have site owners permissions
    ForEach ($Group in $SiteGroups)
    {
        If($Group.Roles.Contains("Full Control"))
        {
            Write-Host -f Yellow $Group.Title
            #Get each member of the group
            ForEach($User in $Group.Users | Where{$_.contains("@")}) #Exclude system Users
            {
                write-host -f Green $User
            }
        }
    }
}

此 PowerShell 脚本从 SharePoint Online 网站中具有完全控制权限的组中获取用户列表。

SharePoint Online:PowerShell 让用户拥有完全控制权

上面的脚本只是获取具有完全控制权的组中的所有用户。如果存在通过直接权限分配的完全控制权限的用户怎么办?


#Parameters
$SiteURL = "https://crescent.sharepoint.com"
$ReportOutput = "C:\Temp\FullControlPermissionRpt.csv"

#Connect to Site
Connect-PnPonline -Url $SiteURL -Interactive
 
#Get the Root web
$Web = Get-PnPWeb -Includes RoleAssignments

#Loop through each permission assigned to the site and extract details
$PermissionData = @()
ForEach ($RoleAssignment in $Web.RoleAssignments)
{
    #Get the Permission Levels assigned and Member
    Get-PnPProperty -ClientObject $RoleAssignment -Property RoleDefinitionBindings, Member
     
    #Check if "Full Control" Permission Level is assigned to the Assignment
    If( ($RoleAssignment.RoleDefinitionBindings | Select -ExpandProperty Name).Contains("Full Control"))
    {
        $PermissionType = $RoleAssignment.Member.PrincipalType
        #Get SharePoint group members
        If($PermissionType -eq "SharePointGroup")
        {
            #Get Group Members
            $GroupMembers = Get-PnPGroupMember -Identity $RoleAssignment.Member.LoginName

            $GroupUsers = ($GroupMembers | Where {$_.LoginName -ne "SHAREPOINT\system"} | Select -ExpandProperty Email) -join "; "
            #Leave Empty Groups - Without users
            If([String]::IsNullOrEmpty($GroupUsers)){ Continue }
   
            #Add the Data to Object
            $Permissions = New-Object PSObject
            $Permissions | Add-Member NoteProperty Name($RoleAssignment.Member.Title)
            $Permissions | Add-Member NoteProperty Accounts($GroupUsers)
            $Permissions | Add-Member NoteProperty Type($PermissionType)
            $PermissionData += $Permissions
        }
        Else
        {
            #Get the User
            $User = Get-PnPUser -Identity $RoleAssignment.Member.LoginName
            #Add the Data to Object
            $Permissions = New-Object PSObject
            $Permissions | Add-Member NoteProperty Name($RoleAssignment.Member.Title)
            $Permissions | Add-Member NoteProperty Accounts($User.Email)
            $Permissions | Add-Member NoteProperty Type($PermissionType)
            $PermissionData += $Permissions
        }
    }
}
#Export Permissions data to CSV file
$PermissionData | Export-csv -path $ReportOutput -NoTypeInformation

总之,PowerShell 脚本提供了一种快速有效的方法来获取在 SharePoint Online 网站中具有完全控制权限的用户列表。通过使用上述 PowerShell 脚本,您可以轻松检索对 SharePoint Online 网站拥有完全控制权限的所有用户的列表。此信息可用于管理站点权限、审核访问或进行故障排除。此外,为了确保只有必要的个人具有完全访问权限,并根据需要更改权限。

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

取消回复欢迎 发表评论:

关灯