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

[玩转系统] 使用 PowerShell 获取 SharePoint Online 网站中的所有用户和组

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

使用 PowerShell 获取 SharePoint Online 网站中的所有用户和组


要求:使用 PowerShell 获取 SharePoint Online 中的所有用户和组报告。

[玩转系统] 使用 PowerShell 获取 SharePoint Online 网站中的所有用户和组

用于获取 SharePoint Online 中所有用户和组报告的 PowerShell 脚本:

您是否需要获取 SharePoint Online 中所有用户和组的列表?如果是这样,PowerShell 可以提供帮助!可以使用 PowerShell 从 SharePoint Online 网站导出用户和组。让我们了解如何轻松地为站点用户和组生成 Excel 格式的概览报告。

此 PowerShell CSOM 脚本获取 SharePoint Online 网站中的所有组和每个组的用户:


#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"
  
#Set Variables for Site URL
$SiteURL= "https://crescent.sharepoint.com/sites/sales"

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

Try {
    #Setup the context
    $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
    $Ctx.Credentials = $Cred

    #Get all Groups
    $Groups=$Ctx.Web.SiteGroups
    $Ctx.Load($Groups)
    $Ctx.ExecuteQuery()

    #Get Each member from the Group
    Foreach($Group in $Groups)
    {
        Write-Host "--- $($Group.Title) --- "

        #Getting the members
        $SiteUsers=$Group.Users
        $Ctx.Load($SiteUsers)
        $Ctx.ExecuteQuery()
        Foreach($User in $SiteUsers)
        {
            Write-Host "$($User.Title), $($User.Email), $($User.LoginName)"
        }
    }
}
Catch {
    write-host -f Red "Error getting groups and users!" $_.Exception.Message
}

如果您需要获取站点中所有用户或组的列表以进行报告、解决访问问题,或者需要从站点中删除用户或组,这会很有帮助。

用于在 SharePoint Online 中获取组和用户报告的 PnP PowerShell:

如果您需要将 SharePoint 在线用户和组导出到 Excel,PnP PowerShell cmdlet 可以提供帮助。 Get-PnPGroup cmdlet 提供了一种导出 SharePoint Online 组和每个组中的用户成员身份的方法。要使用此 cmdlet,您需要使用 Connect-PnPOnline cmdlet 连接到 SharePoint Online。连接后,您可以使用 Get-PnPGroup cmdlet 将所需的用户数据导出到 CSV 文件。然后可以在 Excel 中打开该文件以进行进一步分析。

让我们将所有用户和站点中的用户导出到 CSV 文件中:


#Config Variables
$SiteURL = "https://crescent.sharepoint.com/sites/marketing"
$CSVFile = "C:\Temp\GroupUsers.csv"
  
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-credential)  #-Interactive

#Get All Groups from Site - Exclude system Groups
$Groups = Get-PnPGroup | Where {$_.OwnerTitle -ne "System Account"}
$GroupData=@()

#Get Group Details
ForEach($Group in $Groups)
{
    #Get Group data
    $GroupData += New-Object PSObject -Property ([ordered]@{
    "Group Name" = $Group.Title
    "Users" = $Group.Users.Title -join "; "
    })
}
$GroupData

#Export Users data to CSV file
$GroupData | Export-Csv -NoTypeInformation $CSVFile

这是另一篇使用 SharePoint Online shell 从 SharePoint Online 获取所有组和组成员的文章:SharePoint Online:使用 PowerShell 的网站用户和组报告

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

取消回复欢迎 发表评论:

关灯