There might be a need to get all site collections in all the web applications in SharePoint server. We can get all web applications by using the powershell cmdlet Get-SPWebApplication and then we can get a list of site collections under a particular web application using Get-SPSite cmdlet.
Before proceed, run the following command to add SharePoint PowerShell management snapin.
Add-PSSnapin Microsoft.SharePoint.PowerShell
The following PowerShell script list all site collections in a single web application. You have to change the $url value with your own webapplication url.
$url ='http://sharepoint_server:90/' $Site= Get-SPSite $url $spWebApp = $Site.WebApplication #Enumerate all site collections from webapplication $spWebApp.Sites | Select-Object @{n="Name"; e={$_.RootWeb.Title}},Url,ContentDatabase | FL
Get all site collections in all web applications using PowerShell
First, you need to get all web applications by using Get-SPWebApplication cmdlet and pipe the results to Get-SPSite cmdlet to get site collections for each and every web application. The following powershell script export all site collections in all web applications to CSV file.
Get-SPWebApplication | ForEach-Object { $web = $_ $Site= Get-SPSite $web.Url -Limit All -ErrorAction SilentlyContinue if($Site) { $spWebApp = $Site.WebApplication $spWebApp.Sites | ForEach-Object { New-Object -TypeName PSObject -Property @{ Name = $_.RootWeb.Title Url = $_.Url WebApplication= $web.Name Database = $_.ContentDatabase CreationTime = $_.RootWeb.Created }}}} | Export-CSV "C:\AllSiteCollections.csv" -NoTypeInformation -Encoding UTF8
Advertisement