SharePoint Online: PowerShell kullanarak Site Kullanıcıları ve Grupları Raporu


Gereksinim: SharePoint Online site koleksiyonundaki tüm grupları ve her grubun üyelerini içeren bir rapor oluşturun.

Önkoşullar: SharePoint Çevrimiçi Yönetim Kabuğu'nun yüklü olduğundan emin olun!

Tüm Site Gruplarını ve Her grubun Üyelerini alın:

Kullanıcıları ve grupları yönetmek, SharePoint Online'ı yönetmenin önemli bir yönüdür. Yedekleme, geçiş gerçekleştirmek veya denetim amacıyla SharePoint Online'daki tüm kullanıcıların ve grupların bir listesini dışarı aktarmanız gereken durumlar olabilir. PowerShell kullanılarak bu süreç verimli ve güçlü bir şekilde otomatikleştirilebilir. Bu yazımızda PowerShell kullanarak SharePoint Online'dan kullanıcı ve grupların nasıl dışarı aktarılacağını tartışacağız.

SharePoint Online'da kullanıcıları ve grupları nasıl edinirsiniz? Aslında cevap göründüğü kadar kolay değil. Yöneticiler bu adımları izleyerek SharePoint Online'daki kullanıcıları ve grupları görüntüleyebilir ve daha fazla analiz için kullanıcıların ve grupların listesini hızlı bir şekilde Excel'e aktarabilir.

  1. SharePoint Online sitenize gidin >> Ayarlar dişlisi >>Site İzinleri >> Gelişmiş İzinler Ayarları'na tıklayın.
  2. İzinler sayfasında, üyelerini almak için her bir gruba tıklayın.

Fakat bekle! PowerShell'i kullanarak SharePoint Online'daki kullanıcıları ve grupları görüntülemenin daha iyi bir yolu var.

SharePoint Online kullanıcılarını ve gruplarını Excel'e aktarmak için PowerShell'i kullanmak, kullanıcı ve grup verilerini düzenli olarak almanın hızlı ve kolay bir yoludur. Yapmanız gereken ilk şey PowerShell kullanarak SharePoint Online kiracınıza bağlanmaktır. Bağlandıktan sonra kullanıcılarınız ve gruplarınız hakkında bilgi almak için Get-SPOSiteGroup cmdlet'ini kullanabilirsiniz. Bu bilgiyi Excel'e aktarmak için Export-CSV cmdlet'ini kullanabilirsiniz. Bu, daha sonra Excel'de açabileceğiniz bir CSV dosyası oluşturacaktır. Verileri bir metin dosyasına çıkarmak için Out-File cmdlet'ini de kullanabilirsiniz.


#Import SharePoint Online Management Shell
Import-Module Microsoft.Online.Sharepoint.PowerShell -DisableNameChecking

#Variables for processing
$AdminURL = "https://crescent-admin.sharepoint.com/"
$AdminName = "spadmin@crescent.com"
$SiteURL="https://crescent.sharepoint.com/sites/sales"
 
#User Names Password to connect 
$Password = Read-host -assecurestring "Enter Password for $AdminName" 
$Credential = new-object -typename System.Management.Automation.PSCredential -argumentlist $AdminName, $Password

#Connect to SharePoint Online
Connect-SPOService -url $AdminURL -credential $Credentialexp

#get all sharepoint online groups
$SiteGroups = Get-SPOSiteGroup -Site $SiteURL

#Get Members of each group
foreach($Group in $SiteGroups)
{
    Write-host "Group:"$Group.Title
    Get-SPOSiteGroup -Site $SiteURL -Group $Group.Title | Select-Object -ExpandProperty Users
}

Site koleksiyonunun tüm kullanıcılarını almak için aşağıdaki komut dosyasını kullanın:


Get-SPOUser -Site $siteURL | select DisplayName, LoginName | Where { $_.LoginName -like "*@crescent.com"}

Kullanıcı listesi SharePoint Online'dan nasıl dışarı aktarılır?

Bir SharePoint Online sitesinin tüm kullanıcılarını ve Gruplarını PowerShell kullanarak CSV'ye şu şekilde aktarabiliriz:


#Get All users of the site collections and their Groups
Get-SPOUser -Site "https://Crescent.sharepoint.com/sites/marketing" | ForEach-Object { 
   $_.LoginName + "`t" + $_.DisplayName+ "`t" + ($_.Groups -join ",") | Out-File "C:\Temp\UsersRpt.csv" -Force -Append
}

Tüm SharePoint Çevrimiçi Site Koleksiyonları için Kullanıcıları ve Grupları Alın:

SharePoint Online'dan kullanıcı ve grup almak ister misiniz? PowerShell yardımcı olabilir!


#Import SharePoint Online Management Shell
Import-Module Microsoft.Online.Sharepoint.PowerShell -DisableNameChecking

#Variables for processing
$AdminURL = "https://Crescent-admin.sharepoint.com/"
$AdminName = "SPAdmin@Crescent.com"
 
#User Name & Password to connect
$Password = Read-host -assecurestring "Enter Password for $AdminName" 
$Credential = new-object -typename System.Management.Automation.PSCredential -argumentlist $AdminName, $Password

Try {
#Connect to SharePoint Online
Connect-SPOService -url $AdminURL -credential $Credential

#Get all Site collections
Get-SPOSite -Limit ALL | ForEach-Object {
Write-Host "Site Collection:"$_.URL

#Get all Site Groups 
$SiteGroups = Get-SPOSiteGroup -Site $_.URL
   
    #get sharepoint online group members powershell
    foreach($Group in $SiteGroups)
    {
        Write-host "Group:"$Group.Title
        Get-SPOSiteGroup -Site $_.URL -Group $Group.Title | Select-Object -ExpandProperty Users
    }
  }
}
catch {
    write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}

SharePoint Çevrimiçi Gruplar ve İzinler Raporu

Siteye erişimi olan tüm grupları ve izinleri ve her grubun üyelerini alalım.


#Import SharePoint Online Management Shell
Import-Module Microsoft.Online.Sharepoint.PowerShell -DisableNameChecking

#Variables for SharePoint Online Admin & Target site collection
$AdminSiteURL="https://crescent-admin.sharepoint.com"
$SiteCollURL="https://crescent.sharepoint.com/sites/sales"

#Get the Credentials
$Credential = Get-credential
#Connect To SharePoint Online 
Connect-SPOService -url $AdminSiteURL -Credential $Credential

#Get the Site collection
$Site = Get-SPOSite $SiteCollURL

#Get all Groups of the site collection     
$GroupColl = Get-SPOSiteGroup -Site $Site | Where { $_.Roles -ne $NULL -and $_.Users -ne $NULL}

Foreach($Group in $GroupColl)
{
    #Get Permissions assigned to the Group
    $GroupPermissions=""
    ForEach($Role in $Group.Roles)
    {
        $GroupPermissions+= $Role+";"
    }
    Write-host -f Yellow "Group Name: $($Group.Title) - Permissions: $($GroupPermissions)"

    #sharepoint online powershell to get group members
    foreach($User in $Group.Users)
    {
         write-host -f Green $user
    }               
}

Daha sonra, PowerShell kullanarak SharePoint Online kullanıcılarını ve gruplarını excel'e aktaralım.

Tüm SharePoint Çevrimiçi Site Koleksiyonlarındaki Kullanıcıları ve Grupları CSV'ye Aktarın:

SharePoint Online kullanıcılarını ve gruplarını Excel'e aktarmanız gerekiyorsa PowerShell cmdlet'leri yardımcı olabilir. Tüm grupları ve kullanıcıları bir CSV dosyasına aktarmak için PowerShell'i burada bulabilirsiniz:


#Admin Center & Site collection URL
$AdminCenterURL = "https://Crescent-admin.sharepoint.com/"
$CSVPath = "C:\Temp\GroupsReport.csv"

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

$GroupsData = @()

#Get all Site collections
Get-SPOSite -Limit ALL | ForEach-Object {
    Write-Host -f Yellow "Processing Site Collection:"$_.URL
 
    #get sharepoint online groups powershell
    $SiteGroups = Get-SPOSiteGroup -Site $_.URL

    Write-host "Total Number of Groups Found:"$SiteGroups.Count

    ForEach($Group in $SiteGroups)
    {
        $GroupsData += New-Object PSObject -Property @{
            'Site URL' = $_.URL
            'Group Name' = $Group.Title
            'Permissions' = $Group.Roles -join ","
            'Users' =  $Group.Users -join ","
        }
    }
}
#Export the data to CSV
$GroupsData | Export-Csv $CSVPath -NoTypeInformation

Write-host -f Green "Groups Report Generated Successfully!"

Ve örnek bir rapor:

CSOM veya PnP PowerShell yöntemlerini kullanarak SharePoint Online gruplarını ve kullanıcı raporlarını almanız gerekiyorsa şunu kullanın: PowerShell kullanarak SharePoint Online Sitesindeki Tüm Kullanıcıları ve Grupları Alma

Kapanıyor

Bu yazımızda PowerShell kullanarak SharePoint Online'dan kullanıcı ve grupların nasıl dışarı aktarılacağını ele aldık. Bu kılavuzda özetlenen adımları izleyerek, tüm kullanıcıların ve grupların bir listesini SharePoint Online'dan CSV dosyasına hızlı ve kolay bir şekilde aktarabilirsiniz. PowerShell ile bu süreci otomatikleştirebilir ve SharePoint Online ortamınızın yönetimini ve bakımını kolaylaştırabilirsiniz.

İlgili makaleler