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

[玩转系统] SharePoint Online:从所有网站中删除“除外部用户之外的所有人”

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

SharePoint Online:从所有网站中删除“除外部用户之外的所有人”


要求:从所有 SharePoint Online 网站中查找并删除“除外部用户之外的所有人”组。

PowerShell 查找添加了“除外部用户之外的所有人”的所有站点

让我们了解一下 SharePoint Online 中的“除外部用户之外的所有人”组。该组包括您组织中的所有用户,但不包括外部用户或访客。这是一个广泛的群组,用于与广泛的内部受众共享内容,而无需手动添加个人用户。 “除外部用户之外的所有人”是 SharePoint Online 中的一个权限级别,允许内部用户访问内容,同时限制所有外部用户的访问。

如何找到除外部用户组之外的所有人都拥有权限的网站?电源外壳!在继续执行此脚本之前,请确保您的帐户对所有网站都具有网站集管理员权限:如何将您的帐户添加为租户中所有网站的网站管理员?


$AdminCenterURL = "https://crescent-admin.sharepoint.com"
$CSVPath = "C:\Temp\EveryoneExceptGrp.csv"

#Connect to SharePoint Online Admin Center
Connect-PnPOnline -URL $AdminCenterURL -Interactive

#Get the Tenant ID
$TenantID = Get-PnPTenantId
$SearchGroupID = "spo-grid-all-users/$TenantID" #Everyone except external users

# Get all SharePoint Online sites
$AllSites =  Get-PnPTenantSite | Where -Property Template -NotIn ("SRCHCEN#0", "REDIRECTSITE#0", "SPSMSITEHOST#0", "APPCATALOG#0", "POINTPUBLISHINGHUB#0", "EDISC#0", "STS#-1")

$Result = @()
#Loop through each site collection
ForEach($Site in $AllSites)
{
    Write-host -f Yellow "Processing site:" $Site.URL
    
    #Connect to the Site
    Connect-PnPOnline -URL $Site.URL -Interactive

    #Get the Groups
    $Groups = Get-PnPSiteGroup -Site $Site.Url | Where-Object { $_.Users -contains $SearchGroupID }
    If($Groups)
    {
        Write-host -f Green "`tFound the Group under:" ($Groups.Title -join "; ")
        $Result += [PSCustomObject][ordered]@{
            SiteName         = $Site.Title
            URL              = $Site.URL
            Permissions      = "Group(s): $($Groups.Title -join "; ")"
        }
    }
    Else
    {
        #Check if the site (or its objects) contains any Direct permissions to "Everyone except external users"
        $EEEUsers = Get-PnPUser  | Where {$_.Title -eq "Everyone except external users"}

        If($EEEUsers)
        {
            Write-host -f Green "`tFound the 'Everyone except external users' group with direct permissions!"
        
            $Result += [PSCustomObject][ordered]@{
                SiteName         = $Site.Title
                URL              = $Site.URL
                Permissions      = "Direct Permissions"
            }        
        }
    }
}
$Result | Format-Table
#Export Results to CSV
$Result | Export-Csv -Path $CSVPath

此脚本会扫描租户中的所有站点以查找“除外部用户之外的所有人”组,并将其结果导出到 CSV 文件。

[玩转系统] SharePoint Online:从所有网站中删除“除外部用户之外的所有人”

从所有站点中删除“除外部用户之外的所有人”

现在,下一步是从 Microsoft 365 租户中的所有 SharePoint Online 网站中删除“除外部用户之外的所有人”。请注意:这包括创建的所有“公共”网站 - 因为 SharePoint 默认情况下会自动将此组添加到网站的成员组中。您可以将 SharePoint 网站的隐私从公开切换为私有,以从网站中删除除外部用户之外的所有人。

[玩转系统] SharePoint Online:从所有网站中删除“除外部用户之外的所有人”

如何从 SharePoint Online 网站中删除“除外部用户之外的所有人”?

在多种情况下,组织可能希望从 SharePoint 网站中删除“除外部用户之外的所有人”组,例如出于安全和合规性原因。以下是从网站中删除它的方法:

  1. 导航至网站权限页面

    • 转到您的 SharePoint 网站。
  2. 单击齿轮图标打开设置。
  3. 选择“站点权限”。
  4. 修改权限

    • 在“权限”选项卡中,查找“除外部用户之外的所有人”组。它可以在任何组内,例如会员、访客等。
  5. 选择“除外部用户之外的所有人”组,然后从“操作”菜单中选择“从网站集中删除用户”。
  6. 确认删除以继续。

如果您必须在多个站点上重复该过程,则此方法很简单,但非常耗时。强烈建议使用 PowerShell,因为它是跨多个站点删除组的更有效方法。

[玩转系统] SharePoint Online:从所有网站中删除“除外部用户之外的所有人”

PowerShell 用于删除 SharePoint Online 中除外部用户之外的所有人

下面的脚本连接到 SharePoint Online 并从特定 SharePoint Online 网站组中删除“除外部用户之外的所有人”。相应地设置 $SiteURL。在删除除外部用户组之外的所有人之前,请再次检查权限!


$SiteURL = "https://crescent.sharepoint.com/sites/HR"

#Connect to SharePoint Online Site
Connect-PnPOnline -URL $SiteURL -Interactive

#Get the Tenant ID
$TenantID = Get-PnPTenantId
$SearchGroupID = "spo-grid-all-users/$TenantID" #Everyone except external users
$EEEUsersID = "c:0-.f|rolemanager|$SearchGroupID"

#Check if any Site Group contains "Everyone except external users"
$Groups = Get-PnPSiteGroup -Site $SiteUrl | Where-Object { $_.Users -contains $SearchGroupID }
If($Groups)
{
    Write-host -f Yellow -NoNewline "Found the Group under:" ($Groups.Title -join "; ")    
    #Remove from the Group
    $Groups | ForEach-Object { Remove-PnPGroupMember -LoginName $EEEUsersID -Identity $_.Title }
    Write-host -f Green "`tRemoved from the Group(s)!"
}

同样,对于“Everyone”组,您可以使用组标识符:“c:0(.s|true”)。请注意,上述脚本只是从站点组中删除除外部用户之外的所有人仅,而不是整个网站集如果您想将其从网站中完全删除,请使用:


$SiteURL = "https://crescent.sharepoint.com/sites/HR"

#Connect to SharePoint Online Site
Connect-PnPOnline -URL $SiteURL -Interactive

#Check if the site contains "Everyone except external users"
$EEEUsers = Get-PnPUser | Where {$_.Title -eq "Everyone except external users"}
If($EEEUsers)
{
    Write-host -f Yellow -NoNewline "Found the 'Everyone except external users' in Site!"
    #Remove user from the site    
    Remove-PnPUser -Identity "Everyone except external users" -Force -ErrorAction SilentlyContinue
    Write-host -f Green "`tRemoved!"
}

好吧。如何从租户中的所有站点中删除除外部用户之外的所有人?


$AdminCenterURL = "https://crescent-admin.sharepoint.com"

#Connect to SharePoint Online Admin Center
Connect-PnPOnline -URL $AdminCenterURL -Interactive

# Get all SharePoint Online sites
$AllSites =  Get-PnPTenantSite | Where -Property Template -NotIn ("SRCHCEN#0", "REDIRECTSITE#0", "SPSMSITEHOST#0", "APPCATALOG#0", "POINTPUBLISHINGHUB#0", "EDISC#0", "STS#-1")

#Loop through each site collection
ForEach($Site in $AllSites)
{
    Write-host -f Magenta "Processing site:" $Site.URL        

    #Connect to the Site
    Connect-PnPOnline -URL $Site.URL -Interactive
   
    #Check if the site contains any permissions (Direct/Group Membershipo) to "Everyone except external users"
    $EEEUsers = Get-PnPUser  | Where {$_.Title -eq "Everyone except external users"}

    If($EEEUsers)
    {
        Write-host -f Yellow -NoNewline "`tFound the 'Everyone except external users' group on the site! "
    
        #Remove user from the site    
        Remove-PnPUser -Identity "Everyone except external users" -Force
        Write-host -f Green "Removed!"
    }
}

上面的脚本在直接添加到站点/列表/库/文件夹或文件时,会检查除外部用户之外的每个人是否属于任何站点组或具有任何站点权限。如果是这样,脚本将从整个网站集中删除“除外部用户之外的所有人”。

如果您想禁用“除外部用户之外的所有人”组以供将来使用,您可以使用 PowerShell 来实现:如何禁用 SharePoint Online 中的“所有人”/“除外部用户之外的所有人”组?

概括

总之,对于各种场景(包括合规性、安全性和特定协作要求),删除“除外部用户之外的所有人”组可能是必要的。无论您选择手动还是通过 PowerShell 删除该组,都必须谨慎行事并遵守最佳实践。定期检查和调整权限可确保您的 SharePoint 环境保持安全、合规并有利于高效协作。

经常问的问题:

“所有人”组在 SharePoint Online 中代表什么?

“所有人”组包括有权访问您的 SharePoint 环境的所有用户。该组允许您向所有内部用户授予权限,而无需单独指定每个用户。

如何将用户添加到“除外部用户之外的所有人”组?

您不需要手动将用户添加到该组。所有内部用户都会自动包含在内,前提是他们拥有 SharePoint 许可证。

“除外部用户之外的所有人”包括谁?

“除外部用户之外的所有人”是一个 SharePoint 权限组,其中包括组织内的所有许可用户,但不包括已获得 SharePoint 网站访问权限的外部用户,例如合作伙伴或客户。

如何向“所有人”授予 SharePoint 网站的访问权限

要授予“所有人”访问权限,您必须浏览 SharePoint 网站,单击“设置”,然后单击“网站权限”,并向“所有人”组授予读取/编辑权限。您还可以导航到 SharePoint 列表、库和文件夹,并将“Everyone”组添加到所需的权限级别。请务必取消选中“发送电子邮件邀请”选项,以避免向所有用户发送电子邮件。

如何在 SharePoint 中启用“所有人”组

要在租户级别启用“Everyone”组,请在通过 PowerShell 连接到 SharePoint 租户管理员后执行命令 Set-SPOTenant -ShowEveryoneClaim $true

如何使用“除外部用户之外的所有人”组授予对 SharePoint 网站的访问权限?

要使用此组授予访问权限,请转到 SharePoint 网站,单击“网站设置”下的“网站权限”,然后单击“授予权限”。在“共享”对话框中,键入“除外部用户之外的所有人”,选择适当的权限级别,然后单击“共享”。

如何在 SharePoint 中禁用除外部用户之外的所有人?

使用 Set-SPOTenant cmdlet 将 ShowEveryoneExceptExternalUsersClaim 参数设置为 $False,以禁用“除外部用户之外的所有人”组。例如,Set-SPOTenant -ShowEveryoneExceptExternalUsersClaim $False

可以为“除外部用户之外的所有人”组分配什么权限级别?

您可以向该组分配任何可用的权限级别,例如“读取”、“贡献”、“设计”或“完全控制”,具体取决于您要授予内部用户的访问权限级别。

如何从 SharePoint Online 网站中删除“除外部用户之外的所有人”?

要从 SharePoint Online 网站中删除“除外部用户之外的所有人”,请按照以下步骤操作:导航到该网站,单击齿轮图标打开设置,选择“网站权限”,然后从其中删除“除外部用户之外的所有人”组网站。

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

取消回复欢迎 发表评论:

关灯