SharePoint Online: PowerShell, Site Koleksiyonundaki Tüm Alt Siteleri Alacak
Gereksinim: SharePoint Çevrimiçi Site koleksiyonundaki tüm alt siteleri listelemek için PowerShell.
SharePoint Online sitesindeki Alt Sitelerin Listesini Nasıl Alabilirim?
SharePoint Online'da bir site koleksiyonundaki tüm alt siteleri listelemenin birkaç farklı yolu vardır. Seçeneklerden biri site içeriği sayfasını kullanmaktır.
- Siteye gidin >> Ayarlara tıklayın >> “Site İçeriği”ni seçin.
Site içeriği sayfasında “Alt Siteler”e tıklayın (URL kısayolu: /_layouts/15/viewlsts.aspx?view=15). Bu sayfada mevcut site koleksiyonundaki tüm alt sitelerin bir listesi görüntülenecektir.
Ancak bu sayfa sitenin yalnızca doğrudan alt sitelerini listeler! 2. düzey alt siteler varsa bunları bu sayfaya alamazsınız.
SharePoint Online: PowerShell kullanarak Tüm Alt Siteleri Alın
SharePoint Online'da bir site koleksiyonunun tüm alt sitelerini nasıl edinebilirim? SharePoint yöneticisi olarak, SharePoint Online ortamınızdaki tüm alt sitelerin bir listesini almanız gerekebilir; bu işlem PowerShell kullanılarak yapılabilir. Bu blog gönderisi, SharePoint Online sitenizdeki tüm alt sitelerin bir listesini almak için PowerShell'i nasıl kullanacağınızı gösterecektir.
Bir sitenin tüm alt sitelerini (üst düzey site veya alt site) almak için bu PowerShell betiğini kullanın:
#Requirement: sharepoint online get all subsites powershell
#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"
#Variables
$SiteURL = "https://crescent.sharepoint.com/Sites/Marketing"
Try {
#Get Credentials to connect
$Cred= Get-Credential
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
#Get the web
$Web = $Ctx.web
$Ctx.Load($Web)
#get all subsites in sharepoint online powershell
$Ctx.Load($Web.Webs)
$Ctx.executeQuery()
#Loop through each subsite and get subsite URL
ForEach ($Subweb in $web.Webs)
{
Write-host $Subweb.url
}
}
Catch {
write-host -f Red "Error:" $_.Exception.Message
}
Bu PowerShell betiği, belirli bir sitenin tüm acil alt sitelerini (veya 1. düzey alt sitelerini) alır. Tüm alt siteler yinelemeli olarak nasıl listelenir?
Site Koleksiyonundaki tüm alt siteleri almak için PowerShell
Tüm alt siteleri (Web'leri) yinelemeli olarak almak için SharePoint Online PowerShell'i burada bulabilirsiniz:
#Load SharePoint Online 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"
##Variables for Processing
$SiteUrl = "https://crescent.sharepoint.com/sites/Sales/"
$UserName="Salaudeen@crescent.com"
$Password ="Password goes here"
#Setup Credentials to connect
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UserName,(ConvertTo-SecureString $Password -AsPlainText -Force))
#sharepoint online powershell get subsites
Function Get-SPOWeb() {
param(
$WebURL = $(throw "Please Enter the Site Collection URL")
)
#Get Web information and subsites
$Context = New-Object Microsoft.SharePoint.Client.ClientContext($webURL)
$Context.Credentials = $credentials
$Web = $context.Web
$Context.Load($web)
#powershell cmdlet to retrieve sharepoint online subsites
$Context.Load($web.Webs)
$Context.executeQuery()
#Do something with the current sub-site
Write-host $Web.URL
#Iterate through each subsite in the current web
foreach ($Subweb in $web.Webs)
{
#Call the function recursively to process all subsites underneath the current web
Get-SPOWeb($Subweb.url)
}
}
#Call the function
Get-SPOWeb -WebURL $SiteUrl
Bu PowerShell, belirli bir site koleksiyonundaki tüm alt siteleri alır. Bir site koleksiyonundaki tüm alt siteler hakkında bir rapora ihtiyacınız varsa veya bunların hepsinde aynı anda bazı eylemler gerçekleştirmeniz gerekiyorsa bu yararlı olabilir. Örneğin, tüm alt siteleri yineleyin ve logoyu değiştirin: SharePoint Online: PowerShell Kullanarak Site Logosu Nasıl Değiştirilir?
PowerShell PnP cmdlet'ini kullanarak bir Sitenin Alt Sitelerini Alma Get-PnPSubWeb
PowerShell Pnp'yi kullanarak da SharePoint Online'da Alt Siteler alabiliriz. İşte SharePoint Online'daki bir site koleksiyonundaki tüm alt siteleri almak için PnP PowerShell.
#Config Variables
$SiteURL = "https://Crescent.sharepoint.com"
#Get Credentials to connect
$Cred = Get-Credential
Try {
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials $Cred
#Get subsites in SharePoint Online using PnP PowerShell
$WebsCollection = Get-PnPSubWeb -Recurse
#Iterate through each subsite
ForEach($Web in $WebsCollection)
{
Write-host $Web.Url
}
}
catch {
write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}
Get-PnPSubWeb cmdlet'indeki -Recurse anahtarı, site koleksiyonunun tüm düzeylerindeki tüm alt siteleri yinelemeli olarak alır; site koleksiyonunun kök sitesini eklemek istiyorsanız -IncludeRootWeb anahtarını kullanın.
#Parameter
$SiteURL = "https://crescent.sharepoint.com/sites/marketing"
Try {
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
#Get all webs in SharePoint Online site using PnP PowerShell
$WebsCollection = Get-PnPSubWeb -Recurse -IncludeRootWeb
#Iterate through each web in site
ForEach($Web in $WebsCollection)
{
Write-host $Web.Url
}
}
catch {
write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}
PowerShell kullanarak SharePoint Online'daki tüm siteleri ve alt siteleri almak için şunu kullanın: PowerShell kullanarak SharePoint Online'daki Tüm Siteleri ve Alt Siteleri Alın

