PowerShell kullanarak SharePoint Çevrimiçi Sitesindeki Tüm Kullanıcıları ve Grupları Alın


Gereksinim: PowerShell kullanarak SharePoint Online'daki Tüm Kullanıcılar ve Gruplar Raporunu alın.

SharePoint Online'da Tüm Kullanıcı ve Gruplar Raporunu Almak için PowerShell Komut Dosyası:

SharePoint Online'daki tüm kullanıcıların ve grupların bir listesini almanız mı gerekiyor? Öyleyse PowerShell yardımcı olabilir! Kullanıcıları ve grupları SharePoint Online sitesinden dışarı aktarma PowerShell ile yapılabilir. Site kullanıcıları ve grupları için Excel formatında kolayca bir genel bakış raporunun nasıl oluşturulacağını öğrenelim.

Bu PowerShell CSOM betiği, tüm grupları ve her grubun kullanıcılarını bir SharePoint Online sitesinde alır:


#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
}

Raporlama amacıyla bir sitedeki tüm kullanıcıların veya grupların bir listesini almanız, erişim sorunlarını gidermeniz veya bir kullanıcıyı veya grubu siteden kaldırmanız gerekiyorsa bu yararlı olabilir.

SharePoint Online'da Gruplar ve Kullanıcılar Raporunu Almak için PnP PowerShell:

SharePoint çevrimiçi kullanıcılarını ve gruplarını Excel'e aktarmanız gerekiyorsa PnP PowerShell cmdlet'leri yardımcı olabilir. Get-PnPGroup cmdlet'i, SharePoint çevrimiçi Gruplarını ve her gruptaki kullanıcı üyeliğini dışarı aktarmanın bir yolunu sağlar. Bu cmdlet'i kullanmak için Connect-PnPOnline cmdlet'ini kullanarak SharePoint'e çevrimiçi bağlanmanız gerekir. Bağlandıktan sonra, istediğiniz kullanıcı verilerini bir CSV dosyasına aktarmak için Get-PnPGroup cmdlet'ini kullanabilirsiniz. Bu dosya daha sonra daha fazla analiz için Excel'de açılabilir.

Bir sitedeki tüm kullanıcıları ve kullanıcıları bir CSV dosyasına aktaralım:


#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 kabuğunu kullanarak tüm grupları ve grup üyelerini SharePoint Online'dan almak için başka bir makale: SharePoint Online: PowerShell kullanarak Site Kullanıcıları ve Gruplar Raporu

İlgili makaleler