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

[玩转系统] SharePoint Online:使用 PowerShell 从网站中的所有组中删除用户

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

SharePoint Online:使用 PowerShell 从网站中的所有组中删除用户


要求:从 SharePoint Online 网站集中的所有组中删除用户。

[玩转系统] SharePoint Online:使用 PowerShell 从网站中的所有组中删除用户

SharePoint Online:PowerShell 从所有组中删除用户

虽然可以通过用户界面管理 SharePoint Online 中的用户及其权限,但在处理大量用户和组时,管理员可能会变得乏味且耗时。幸运的是,管理员可以使用 PowerShell 脚本来自动化该过程并快速对用户权限进行批量更改。在本教程中,我们将向您展示如何使用 PowerShell 从 SharePoint Online 网站中的所有组中删除用户。当员工离开公司或更换部门,并且您需要快速撤销他们对敏感信息的访问权限时,这会派上用场。

此 PowerShell 脚本获取给定用户的所有组并将其从组中删除。


#Set Parameters
$AdminCenterURL="https://crescent-admin.sharepoint.com"
$SiteUrl = "https://crescent.sharepoint.com/sites/marketing"
$UserLoginID = "i:0#.f|membership|[email protected]"

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

#Get All Groups of the User
$UserGroups = Get-SPOUser -LoginName $UserLoginID -Site $SiteURL | Select -ExpandProperty Groups

#Remove User from all Groups
$UserGroups | ForEach-Object { Remove-SPOUser -Group $_ -Site $SiteUrl -LoginName $UserLoginID}

在 SharePoint Online Management Shell 中运行此脚本。这将从用户添加到的任何组中删除用户,包括网站所有者组的成员(但不是网站集管理员!)。如果您需要从 SharePoint Online 组中删除用户,可以参考如何使用 PowerShell 从 SharePoint Online 组中删除用户?

使用 PowerShell CSOM 从所有组中删除用户

站点管理员可以使用此 CSOM PowerShell 来管理站点用户和组。让我向您展示如何使用 PowerShell 从给定 SharePoint Online 网站的所有组中删除用户。


#Load SharePoint Online 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 remove all users from a group
Function Remove-UserFromAllGroups()
{
  param
    (
        [Parameter(Mandatory=$true)] [string] $SiteURL,
        [Parameter(Mandatory=$true)] [string] $UserID
    )
   Try {
        $Cred= Get-Credential
  
        #Setup the context
        $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
        $Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
          
        #Get all Groups from the site
        $Groups=$Ctx.web.SiteGroups
        $Ctx.Load($Groups)
        $Ctx.ExecuteQuery()

        #Iterate through Each Group
        Foreach($Group in $Groups)
        {
            #Get all users from the group
            $Ctx.Load($Group.Users)
            $Ctx.ExecuteQuery()

            ForEach($User in $Group.Users)
            {
                If($User.LoginName -eq $UserID)
                {
                    $Group.Users.RemoveByLoginName($User.LoginName)
                    Write-host "User Removed from Group:"$Group.Title  -ForegroundColor Green        
                }
            }
            $Ctx.ExecuteQuery()
        }        
    }
    Catch {
        write-host -f Red "Error Removing All Users from Group!" $_.Exception.Message
    }
} 

#Set parameter values
$SiteURL = "https://crescent.sharepoint.com/sites/marketing"
$UserID= "i:0#.f|membership|[email protected]"
 
#Call the function to remove user from all groups
Remove-UserFromAllGroups -SiteURL $SiteURL -UserID $UserID

PnP PowerShell 从站点中的所有组中删除用户

SharePoint Online 管理员可以使用 PowerShell 从网站中的所有组中快速删除用户。只需几行脚本,您就可以将用户从所有组中删除,然后从站点中删除。如果您出于安全原因或其他原因需要快速从所有组中删除用户,这会很有帮助。

如果您需要快速将某人从站点中所属的所有组中删除,请使用以下方便的 PnP PowerShell 脚本:


#Set Variables
$SiteURL = "https://crescent.sharepoint.com/sites/Marketing"
$UserLoginID = "i:0#.f|membership|[email protected]"
 
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive

#Get All Groups of the User
$UserGroups = Get-PnPUser -Identity $UserLoginID | Select -ExpandProperty Groups | Where {$_.Title -notmatch "Limited Access*"}

#Remove User from all Groups
$UserGroups | ForEach-Object { Remove-PnPGroupMember -LoginName $UserLoginID -Identity $_.Title } 

除了组权限之外,用户还可能对站点中的对象拥有直接权限。如果要从网站集中完全删除用户,请使用:如何使用 PowerShell 从 SharePoint Online 网站集中删除用户?

结论

通过使用 PowerShell 脚本,管理员可以简化在 SharePoint Online 中管理用户和权限的过程。从站点上的所有组中删除用户可以快速高效地完成,从而节省时间并降低手动错误的风险。无论您是与一个用户还是多个用户打交道,此过程都可以自动化,以便在几分钟内进行批量更改。

总之,使用 PowerShell 从 SharePoint Online 网站中的所有组中删除用户是管理用户权限的有效且高效的方法。通过几个简单的步骤,管理员可以轻松保证 SharePoint 环境的安全,并确保只有授权用户才能访问敏感信息。

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

取消回复欢迎 发表评论:

关灯