Tìm kiếm trang web

Nhận tất cả người dùng và nhóm trong trang SharePoint Online bằng PowerShell


Yêu cầu: Nhận báo cáo tất cả người dùng và nhóm trong SharePoint Online bằng PowerShell.

Tập lệnh PowerShell để lấy báo cáo của tất cả người dùng và nhóm trong SharePoint Online:

Bạn có cần lấy danh sách tất cả người dùng và nhóm trong SharePoint Online không? Nếu vậy, PowerShell có thể trợ giúp! Việc xuất người dùng và nhóm từ trang SharePoint Online có thể được thực hiện bằng PowerShell. Hãy cùng tìm hiểu cách dễ dàng tạo báo cáo tổng quan cho người dùng và nhóm trang web ở định dạng Excel.

Tập lệnh PowerShell CSOM này nhận được tất cả các nhóm và người dùng của từng nhóm trong trang SharePoint Online:


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\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
}

Điều này có thể hữu ích nếu bạn cần lấy danh sách tất cả người dùng hoặc nhóm trong một trang web cho mục đích báo cáo, khắc phục sự cố truy nhập hoặc nếu bạn cần xóa người dùng hoặc nhóm khỏi trang web.

PnP PowerShell để nhận báo cáo nhóm và người dùng trong SharePoint Online:

Nếu bạn cần xuất người dùng và nhóm SharePoint trực tuyến sang Excel, lệnh ghép ngắn PnP PowerShell có thể trợ giúp. Lệnh ghép ngắn Get-PnPGroup cung cấp cách xuất Nhóm SharePoint trực tuyến và tư cách thành viên của người dùng trong mỗi nhóm. Để sử dụng lệnh ghép ngắn này, bạn sẽ cần kết nối với SharePoint trực tuyến bằng lệnh ghép ngắn Connect-PnPOnline. Sau khi kết nối, bạn có thể sử dụng lệnh ghép ngắn Get-PnPGroup để xuất dữ liệu người dùng mong muốn sang tệp CSV. Tập tin này sau đó có thể được mở trong Excel để phân tích thêm.

Hãy xuất tất cả người dùng và người dùng từ một trang web sang tệp 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

Đây là một bài viết khác để lấy tất cả các nhóm và thành viên nhóm từ SharePoint Online bằng cách sử dụng SharePoint Online shell: SharePoint Online: Báo cáo nhóm và người dùng trang web bằng PowerShell

Bài viết liên quan