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

[玩转系统] SharePoint Online:使用 PowerShell 查找具有唯一权限的所有子网站

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

SharePoint Online:使用 PowerShell 查找具有唯一权限的所有子网站


要求:使用 PowerShell 查找具有唯一权限的所有 SharePoint Online 网站。

如何检查网站(网站)是否使用独特权限或继承父级权限?

您是否正在寻找一种快速检查 SharePoint Online 子网站是否具有唯一权限的方法? PowerShell 使查找具有唯一权限的所有站点变得轻而易举!这篇博文将向您展示如何使用 PowerShell 查找具有唯一权限的所有子网站。

要检查站点是否存在权限问题,请按照下列步骤操作:

  1. 导航到站点,然后转至站点设置 >> 站点权限 >> 高级权限设置。
  2. “高级权限”页面为您提供有关该网站是否具有唯一权限的信息。如果该网站具有独特的权限,
    您将收到文本“此网站具有独特的权限”,否则“此网站从其父网站继承权限”。

    [玩转系统] SharePoint Online:使用 PowerShell 查找具有唯一权限的所有子网站

SharePoint Online:PowerShell 获取具有唯一权限的所有网站(子网站)

此 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"

#Define Parameter values
$SiteURL="https://crescent.sharepoint.com"

#Setup Credentials to connect
$Cred= Get-Credential
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)

Try {
    #Function to check if site has unique permissions
    Function Check-SPOWebUniquePermissions($SiteURL)
    {
        #Set up the context
        $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
        $Ctx.Credentials = $credentials
 
        $Web = $Ctx.Web
        $Ctx.Load($Web)
        $Ctx.Load($Web.Webs)
        $Ctx.ExecuteQuery()

        #Check if the site has unique permissions
        $Web.Retrieve("HasUniqueRoleAssignments")
        $Ctx.ExecuteQuery()

        if ($Web.HasUniqueRoleAssignments -eq $true)
        {        
            Write-Host -f Green "Site '$($Web.URL)' has Unique Permissions"
        }
        else
        {
            Write-Host -f Yellow "Site '$($Web.URL)' is inhering Permissions from the Parent"
        }
 
        #Process Each subsite in current site
        ForEach($Web in $Web.Webs)
        {
            #call the function recursively
            Check-SPOWebUniquePermissions $Web.Url
        }
    } 
    #call the function 
    Check-SPOWebUniquePermissions $SiteURL
}
Catch {
    write-host -f Red "Error Checking Unique Permissions!" $_.Exception.Message
}

PnP PowerShell 获取具有独特权限的子站点

让我们借助 PnP PowerShell 审核所有子站点的唯一权限状态:


#Parameters
$SiteURL = "https://crescent.sharepoint.com/sites/marketing"

Try {
    #Connect to PnP Online
    Connect-PnPOnline -Url $SiteURL -Interactive

    #Get All subsites from the SharePoint Online site collection
    $WebsCollection = Get-PnPSubWeb -Recurse -Includes HasUniqueRoleAssignments
    
    #Get Unique Permission status of each subsite
    $WebsCollection | Select Title, URL, HasUniqueRoleAssignments
}
catch {
    write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}

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

取消回复欢迎 发表评论:

关灯