SharePoint Online: Site Koleksiyonu Yöneticilerini PowerShell Alacak


Gereksinim: Tüm Site Koleksiyonu Yöneticilerini Listelemek için SharePoint Online PowerShell.

SharePoint Online site koleksiyonu yöneticileri, site koleksiyonundaki üst düzey site, alt siteler, tüm listeler ve kitaplıklar dahil olmak üzere tüm site koleksiyonu üzerinde tam denetime sahiptir. Her SharePoint site koleksiyonunun, genellikle SharePoint Online yöneticileri tarafından SharePoint Online Yönetici Merkezi sitesi aracılığıyla oluşturulan site koleksiyonu sırasında Birincil Site Sahibi ve site koleksiyonu Yöneticileri olarak atanan kendi Site Koleksiyonu Yöneticileri bulunabilir. Site ayarları sayfası aracılığıyla herhangi bir ek site koleksiyonu yöneticisi eklenebilir/kaldırılabilir.

Tüm Site Koleksiyonu Yöneticilerini SharePoint Yönetim Merkezinden Nasıl Alabilirim?

SharePoint Online'da koleksiyon yöneticisini nasıl bulabilirim? Tüm site koleksiyonu yöneticilerini almak için, Microsoft Edge veya Google Chrome gibi favori tarayıcılarınızdan SharePoint Yönetim Merkezi'nde oturum açın >> “Siteler”i genişletin >> Etkin Siteler >> Listeden siteyi seçin >> “İzinler”e tıklayın ve ardından “Yöneticileri Yönet”i seçin.

Site koleksiyonu yöneticileri, birincil SharePoint sitesi sahipleriyle aynı erişim haklarına sahiptir ancak tek fark, E-posta bildirimleridir! Birincil site koleksiyonu yöneticileri, site koleksiyonu depolama sınırı uyarısı E-postaları gibi e-posta bildirimleri alacaktır.

Site Ayarları'ndan SharePoint Online'da site koleksiyonu yöneticileri nasıl edinilir?

Bir SharePoint Online sitesinin tüm site koleksiyonu yöneticilerini almak istiyorsanız aşağıdakileri yapın:

  1. Ayarlar Dişli simgesine tıklayın ve Site Ayarları'nı seçin.
  2. Site Ayarları sayfasında, "Kullanıcılar ve İzinler" grubunun altındaki "Site Koleksiyonu Yöneticileri" bağlantısını tıklayın (Tarayıcıda şu URL kısayolunu kullanın: /_layouts/15/mngsiteadmin.aspx).
  3. Bu sayfa size belirli bir site koleksiyonundaki site koleksiyonu yöneticilerinin listesini verir.

Grup bağlantılı modern sitelerde, site koleksiyonu yöneticileri Ayarlar >> Site İzinleri >> Gelişmiş İzinler Ayarları altındadır.

SharePoint Online'da İkincil Site Koleksiyonu Yöneticilerimiz yoktur. Bir Site Koleksiyonunda bir Birincil Site sahibi ve ek site koleksiyonu Yöneticileri bulunabilir!

Şimdi SharePoint Online’da site koleksiyonu yöneticilerini almak için PowerShell betiğini kullanalım.

PowerShell kullanan Birincil Site Koleksiyonu Yöneticisi - Sahibini Alın

SharePoint Online'da site koleksiyonu yöneticilerini edinmek için PowerShell betiğini nasıl kullanacağınız aşağıda açıklanmıştır:


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.SharePoint.Client.Runtime.dll"
Add-Type -Path "C:\Program Files\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.Online.SharePoint.Client.Tenant.dll"
  
#Get Primary Owners of All Site collections from the Tenant
Function Get-SPOPrimarySiteOwners($AdminSiteURL, $Cred)
{
    #Setup credentials to connect
    $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
   
    #Setup the context
    $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($AdminSiteURL)
    $Ctx.Credentials = $Credentials
  
    #Get the tenant object 
    $Tenant = New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($ctx)
  
    #Get All Site Collections
    $SiteCollections=$Tenant.GetSitePropertiesFromSharePoint(0,$true)
    $Ctx.Load($SiteCollections)
    $Ctx.ExecuteQuery()
 
    #Iterate through Each site collection
    ForEach($Site in $SiteCollections)
    {
        #Get the Site Collection and Audit Objects
        $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($Site.URL)
        $Ctx.Credentials = $Credentials
        
        #Get the Site collection
        $SiteCollection = $Ctx.Site
        $Ctx.Load($SiteCollection)
        $Ctx.ExecuteQuery()
 
        #Get Site Owner
        $Owner = $SiteCollection.Owner
        $Ctx.Load($Owner)
        $Ctx.ExecuteQuery()
        
        #Output Primary Site owner Details
        $SiteCollection | Select URL, @{Name="Owner Name";Expression={$_.Owner.Title}}, @{Name="Owner Email";Expression={$_.Owner.Email}}
    }
}
  
#Set Parameters
$AdminSiteUrl = "https://Crescent-admin.sharepoint.com/"
$Cred= Get-Credential
 
Get-SPOPrimarySiteOwners -AdminSiteURL $AdminSiteUrl -Cred $Cred

Bu betiği çalıştırmadan önce yerel makinenizde CSOM SDK'nın veya SharePoint Online PowerShell Modülünün kurulu olduğundan emin olun. Komut dosyasını çalıştırmak için Windows PowerShell ISE'yi kullanabilirsiniz. SharePoint Online'da PowerShell'i kullanan birincil site koleksiyonu yöneticisini alır.

SharePoint Online: PowerShell, Site Koleksiyonu Yöneticilerini Alacak

Belirli site koleksiyonunun Site koleksiyonu yöneticilerinin listesini almak için PowerShell cmdlet'i Get-SPOUser'ı filtre IsSiteAdmin özelliğiyle birlikte kullanabilirsiniz. Bu size hem birincil site sahiplerini hem de site koleksiyonu yöneticilerini kazandırır.


#Variables for processing
$AdminURL = "https://Crescent-admin.sharepoint.com/"
$AdminName = "SPAdmin@Crescent.com"
$SiteCollURL="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 $Credential

#Get the Site colection
$SiteColl = Get-SPOSite $SiteCollURL
    
#sharepoint online powershell get all site collection admins
$SiteAdmins = Get-SPOUser -Site $SiteCollURL -Limit ALL | Where { $_.IsSiteAdmin -eq $True}
foreach($Admin in $SiteAdmins)
{
    Write-host $Admin.LoginName        
}

PowerShell, SharePoint Online'daki Tüm Site Koleksiyonlarının Site Koleksiyonu Yöneticilerini Alacak

Biraz hata işleme ekleyelim ve tüm site koleksiyonlarından site koleksiyonu yöneticilerini alalım.


#Variables for processing
$AdminURL = "https://Crescent-admin.sharepoint.com"
$AdminName = "spadmin@Crescent.com"
 
#User Names 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 colections
    $Sites = Get-SPOSite -Limit ALL

    Foreach ($Site in $Sites)
    {
        Write-host $Site.URL
    
        #Get all Site Collection Administrators
        $SiteAdmins = Get-SPOUser -Site $Site.Url -Limit ALL | Where { $_.IsSiteAdmin -eq $True}
        foreach($Admin in $SiteAdmins)
        {
            Write-host $Admin.LoginName        
        }
    }
}
catch {
    write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}

SharePoint Online'da PnP PowerShell kullanarak Tüm Site Koleksiyonu Yöneticilerine Sahip Olun

PnP PowerShell ile site koleksiyonu yöneticileri Get-PnPSiteCollectionAdmin cmdlet'iyle alınabilir. Tüm site koleksiyonu yöneticilerini edinmek için SharePoint Online PowerShell'i burada bulabilirsiniz:

PowerShell aracılığıyla bir SharePoint Online sitesinin mevcut site koleksiyonu yöneticilerini alabilmek için site koleksiyonu Yönetici haklarına sahip olmanız gerekir! "Get-PnPSiteCollectionAdmin: Uzak sunucu bir hata döndürdü: (403) Yasak." hatası alabilirsiniz. eğer değilsen!

#Set Variables
$SiteURL = "https://crescent.sharepoint.com/sites/Marketing"

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)

#Get Site Collection Administrators
Get-PnPSiteCollectionAdmin

Bu PnP PowerShell betiği, belirli bir site koleksiyonunun tüm site koleksiyonu yöneticilerini alır. Kiracıdaki tüm sitelerin site koleksiyonu yöneticilerini edinmek için aşağıdakileri kullanın:


#Set Variables
$SiteURL = "https://crescent.sharepoint.com"

#Get Credentials to connect
$Cred = Get-Credential

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials $Cred

#Get All Site collections  
$SitesCollection = Get-PnPTenantSite

#Loop through each site collection
ForEach($Site in $SitesCollection)  
{  
    Write-host -F Green "Site Collection Administrators of site: " $Site.Url  
    Connect-PnPOnline -Url $Site.Url -Credentials $Cred
  
    #Get Site Collection administrators of the site
    Get-PnPSiteCollectionAdmin
}

Grup Bağlantılı Sitelerden Site Koleksiyonu Yöneticilerini Alın

Bir site gruba bağlıysa, yukarıdaki komut dosyası çıktılarında yalnızca "Grup Sahiplerini" göreceksiniz. Grubu nasıl genişleteceğiniz ve gruptan sahipler alacağınız aşağıda açıklanmıştır:


#Set Variables
$AdminSiteURL = "https://crescent-admin.sharepoint.com"
 
#Connect to Admin Center
Connect-PnPOnline -Url $AdminSiteURL -Interactive
  
#Get All Site collections - Exclude: Seach Center, Mysite Host, App Catalog, Redirect, Content Type Hub, eDiscovery and Bot Sites
$SiteCollections = Get-PnPTenantSite | Where -Property Template -NotIn ("SRCHCEN#0", "REDIRECTSITE#0", "SPSMSITEHOST#0", "APPCATALOG#0", "POINTPUBLISHINGHUB#0", "EDISC#0", "STS#-1")
 
#Loop through each site collection
ForEach($Site in $SiteCollections) 
{ 
    Write-host -F Yellow "Getting Site Collection Administrators of the site: " $Site.Url 
    Connect-PnPOnline -Url $Site.Url -Interactive
    
    #Get Site Collection Administrators
    $SiteAdminstrators = @()
    Get-PnPSiteCollectionAdmin -PipelineVariable Admin | ForEach-Object {
        If($_.PrincipalType -eq "SecurityGroup")
        {
            #Get Members of the Group
            $Group = Get-PnPMicrosoft365Group -IncludeOwners | Where {$_.Mail -eq $Admin.Email}
            $Group.Owners | Select Email | ForEach-Object {
                $SiteAdminstrators += $_.Email
            }
        }
        Else
        {
            $SiteAdminstrators += $Admin.Email
        }
    }
    #Get Site Collection Administrators of the Site
    $SiteAdminstrators | select -Unique
}

Tüm site koleksiyonu yöneticilerini bir CSV dosyasına aktarmanız gerekiyorsa şuraya bakın: SharePoint Çevrimiçi Site Koleksiyonu Yöneticilerini CSV'ye Aktarma

Sıkça Sorulan Sorular:

PowerShell'i kullanarak çevrimiçi SharePoint'e site koleksiyonu yönetimini nasıl eklerim?

SharePoint site koleksiyonu yöneticisi eklemek için şunları kullanın: Örneğin, SharePoint Çevrimiçi Yönetim Kabuğu'ndaki “Set-SPOUser -site $SiteURL -LoginName 'UPN of the user' -IsSiteCollectionAdmin $True” veya PnP PowerShell kullanan Add-PnPSiteCollectionAdmin/Set-PnPTenantSite cmdlet'leri . Bir site koleksiyonu Yöneticisi ayarlamak üzere kullanıcının "IsSiteAdmin" özelliğini ayarlamak için İstemci tarafı nesne modelini de kullanabilirsiniz.
Daha fazla bilgi: Site koleksiyonu yöneticisi eklemek için SharePoint Online PowerShell

SharePoint Online'da bir koleksiyon yöneticisini nasıl silerim?

Bir site koleksiyonu yöneticisini SharePoint Online sitesinden kaldırmak için SharePoint Online yönetim merkezini, site ayarları sayfasını veya PowerShell komut dosyalarını kullanabilirsiniz.
Daha fazla bilgi: SharePoint Online'da site koleksiyonu yöneticisini kaldırma

SharePoint Online'da birincil yöneticiyi nasıl değiştiririm?

Site koleksiyonunu seçip "İzinler"e ve ardından "Yöneticileri Yönet"e tıklayarak site sahibini SharePoint Yönetim merkezi aracılığıyla değiştirebilirsiniz. "Yöneticileri Yönet" panelinde, birincil site koleksiyonu yöneticisini - Site sahibini "Birincil Yönetici" olarak ayarlayarak değiştirebilirsiniz.
Daha Fazla Bilgi: SharePoint Online'da Site Sahibi (Birincil Yönetici) Nasıl Değiştirilir?

İlgili makaleler