PnP PowerShell kullanarak Tüm SharePoint Çevrimiçi Sitelerini Nasıl Alabilirim?


Müşterilerimden biri yakın zamanda benden SharePoint Online ortamında sunulan tüm siteleri almamı istedi. Bunun için PnP PowerShell'i denedim. Bu eğitimde size PnP PowerShell kullanarak tüm SharePoint Online sitelerini nasıl alacağınızı göstereceğim.

Burada ayrıca tüm SharePoint ekip sitelerini, iletişim sitelerini, Microsoft 365 grubuna bağlı olmayan SharePoint sitelerini vb. nasıl alacağınızı da göstereceğim. PnP PowerShell betiği ayrıca tüm SharePoint Online sitelerinin oluşturulma tarihini de görüntüler.

PnP PowerShell konusunda yeniyseniz öncelikle aşağıdaki cmdlet'i kullanarak kurulum yapın veya adım adım anlattığım bu yazıya göz atın.

Install-Module -Name PnP.PowerShell -Force -AllowClobber

PnP PowerShell kullanarak Tüm SharePoint Çevrimiçi Sitelerini Alın

Öncelikle size PnP PowerShell kullanarak tüm SharePoint sitelerini nasıl alacağınızı göstereyim. Site URL'sini ve Oluşturulma Tarihini gösterecektir.

# Connect to SharePoint Online
$TenantAdminUrl = "https://szg52-admin.sharepoint.com"
Connect-PnPOnline -Url $TenantAdminUrl -Interactive

# Retrieve all sites
$sites = Get-PnPTenantSite

# Output all sites with URL
Write-Output "All SharePoint Online Sites:"
$sites | ForEach-Object {
    Write-host "Site Title:" $_.Title -"Site URL: " $_.URL
}

Yukarıdaki betiği çalıştırdım ve çıktıyı aşağıdaki ekran görüntüsünde görebilirsiniz:

Bir Excel dosyasına aktarmak istiyorsanız komut dosyasını aşağıdaki gibi değiştirebilirsiniz:

# Connect to SharePoint Online
$TenantAdminUrl = "https://szg52-admin.sharepoint.com"
Connect-PnPOnline -Url $TenantAdminUrl -Interactive

# Retrieve all sites
$sites = Get-PnPTenantSite

# Prepare data for export
$siteData = $sites | ForEach-Object {
    [PSCustomObject]@{
        Title       = $_.Title
        URL         = $_.Url   
        OwnernName =  $_.OwnerEmail
    }
}

# Export data to Excel
$siteData | Export-Excel -Path "C:\MyNewFolder\SharePointSites.xlsx" -AutoSize -Title "SharePoint Online Sites"

PnP PowerShell kullanarak bir SharePoint Sitesinin Var olup olmadığını kontrol edin

PnP PowerShell kullanarak Tüm SharePoint Online Teams Sitelerini Alın

PnP PowerShell kullanarak 11SharePoint Online'dan tüm ekip sitelerini almak isteyebileceğiniz senaryolar olacaktır.

Aşağıda tüm modern ekip sitelerinin bir Microsoft 365 grubuna bağlanmasını sağlayan eksiksiz bir PowerShell betiği bulunmaktadır.

# Connect to SharePoint Online
$TenantAdminUrl = "https://szg52-admin.sharepoint.com"
Connect-PnPOnline -Url $TenantAdminUrl -Interactive

# Retrieve all sites
$Sites = Get-PnPTenantSite -Template GROUP#0

Write-Output "Group Connected Team Sites:"
# Output all sites with URL
$Sites | ForEach-Object {
    Write-host "Site Title:" $_.Title -"Site URL: " $_.URL
}

-Template'i GROUP#0 olarak sağladığım için, gruba bağlı tüm ekip sitelerini görüntüleyen aşağıdaki ekran görüntüsünü görebilirsiniz.

PnP PowerShell kullanarak tüm SharePoint Online ekip sitelerini (Microsoft 365 gruplarına bağlı olanlar dahil) almak için eksiksiz bir komut dosyasını burada bulabilirsiniz.

# Connect to SharePoint Online
$TenantAdminUrl = "https://szg52-admin.sharepoint.com"
Connect-PnPOnline -Url $TenantAdminUrl -Interactive

# Retrieve all sites
$sites = Get-PnPTenantSite
$teamSites = $sites | Where-Object { $_.GroupId -ne $null }
# Output all sites with URL
Write-Output "All SharePoint Online Sites:"
$teamSites | ForEach-Object {
    Write-host "Site Title:" $_.Title -"Site URL: " $_.URL
}

Yukarıdaki PowerShell betiğini VS kodunu kullanarak çalıştırdıktan sonra çıktıyı aşağıdaki ekran görüntüsünde görebilirsiniz.

PnP PowerShell kullanarak Tüm SharePoint Çevrimiçi İletişim Sitelerini Alın

SharePoint Online'da PnP PowerShell'i kullanarak tüm iletişim sitelerine ulaşmak gerçekten çok kolay. Şablonu Get-PnPTenantSite'a şu şekilde iletmeniz yeterlidir: Get-PnPTenantSite -Template SITEPAGEPUBLISHING#0

İşte tam komut dosyası.

# Connect to SharePoint Online
$TenantAdminUrl = "https://szg52-admin.sharepoint.com"
Connect-PnPOnline -Url $TenantAdminUrl -Interactive

# Retrieve all sites
$communicationSites = Get-PnPTenantSite -Template SITEPAGEPUBLISHING#0

Write-Output "Communication Sites:"
# Output all sites with URL
$communicationSites | ForEach-Object {
    Write-host "Site Title:" $_.Title -"Site URL: " $_.URL
}

Yukarıdaki PowerShell betiğini çalıştırdım ve tam çıktıyı aşağıdaki ekran görüntüsünde görebilirsiniz:

Umarım artık PnP PowerShell kullanarak tüm SharePoint Online iletişim sitelerini nasıl edineceğinizi öğrenmişsinizdir.

Çözüm

Bu eğitimde, PnP PowerShell kullanarak tüm SharePoint sitelerinin nasıl alınacağını açıkladım. Ve ayrıca:

  • PnP PowerShell kullanarak tüm modern ekip sitelerinin bir Microsoft 365 grubuna bağlanmasını sağlayın
  • PnP PowerShell'i kullanarak tüm iletişim sitelerini edinin.

İlgili makaleler