Get All SharePoint Online Site Collections Inventory using PowerShell

Requirement: Get all site collections inventory in SharePoint Online using PowerShell

PowerShell to Get All SharePoint Online Site Collections Inventory:
Let's get list of SharePoint Online sites using PowerShell
Import-Module Microsoft.Online.SharePoint.Powershell -DisableNameChecking

#Config Parameters
$AdminSiteURL="https://crescent-admin.sharepoint.com"
$ReportOutput="C:\Temp\SPOStorage.csv"

#Get Credentials to connect to SharePoint Admin Center
$Cred = Get-Credential

#Connect to SharePoint Online Admin Center
Connect-SPOService -Url $AdminSiteURL –Credential $Cred

#Get All site collections
$SiteCollections = Get-SPOSite -Limit All
Write-Host "Total Number of Site collections Found:"$SiteCollections.count -f Yellow

#Array to store Result
$ResultSet = @()

#Loop through each site collection and retrieve details
Foreach ($Site in $SiteCollections)
{
    Write-Host "Processing Site Collection :"$Site.URL -f Yellow

    #Get site collection details    
    $Result = new-object PSObject
    $Result | add-member -membertype NoteProperty -name "Title" -Value $Site.Title
    $Result | add-member -membertype NoteProperty -name "Url" -Value $Site.Url
    $Result | add-member -membertype NoteProperty -name "LastContentModifiedDate" -Value $Site.LastContentModifiedDate
    $Result | add-member -membertype NoteProperty -name "Status" -Value $Site.Status
    $Result | add-member -membertype NoteProperty -name "LocaleId" -Value $Site.LocaleId
    $Result | add-member -membertype NoteProperty -name "LockState" -Value $Site.LockState
    $Result | add-member -membertype NoteProperty -name "StorageQuota" -Value $Site.StorageQuota
    $Result | add-member -membertype NoteProperty -name "StorageQuotaWarningLevel" -Value $Site.StorageQuotaWarningLevel
    $Result | add-member -membertype NoteProperty -name "Used" -Value $Site.StorageUsageCurrent
    $Result | add-member -membertype NoteProperty -name "CompatibilityLevel" -Value $Site.CompatibilityLevel
    $Result | add-member -membertype NoteProperty -name "Template" -Value $Site.Template
    $Result | add-member -membertype NoteProperty -name "SharingCapability" -Value $Site.SharingCapability
    
    $ResultSet += $Result
}  
 
#Export Result to csv file
$ResultSet |  Export-Csv $ReportOutput -notypeinformation
 
Write-Host "Site Quota Report Generated Successfully!" -f Green   
and the result:
sharepoint online get all site collections powershell

Here is the List of all properties you can retrieve from a SharePoint Online site collection:
  • LastContentModifiedDate
  • Status
  • ResourceUsageCurrent
  • ResourceUsageAverage
  • StorageUsageCurrent
  • LockIssue
  • WebsCount
  • CompatibilityLevel
  • DisableSharingForNonOwnersStatus
  • Url
  • LocaleId
  • LockState
  • Owner
  • StorageQuota
  • StorageQuotaWarningLevel
  • ResourceQuota
  • ResourceQuotaWarningLevel
  • Template
  • Title
  • AllowSelfServiceUpgrade
  • DenyAddAndCustomizePages
  • PWAEnabled
  • SharingCapability
  • SandboxedCodeActivationCapability
  • DisableCompanyWideSharingLinks
  • DisableAppViews
  • DisableFlows
  • StorageQuotaType
  • SharingDomainRestrictionMode
  • SharingAllowedDomainList
  • SharingBlockedDomainList
Use this PowerShell script in SharePoint Online Management Shell to get all available properties of a SharePoint Online site collection:
#Config Parameters
$AdminSiteURL="https://crescent-admin.sharepoint.com"
$ReportOutput="C:\Temp\SPOStorage.csv"

#Get Credentials to connect to SharePoint Admin Center
$Cred = Get-Credential

#Connect to SharePoint Online Admin Center
Connect-SPOService -Url $AdminSiteURL –Credential $Cred

#Get all Site collections details and Export to CSV
Get-SPOSite -Limit ALL -Detailed | Export-Csv -Path $ReportOutput -NoTypeInformation

PnP PowerShell to Get Site Collection Details in SharePoint Online:
#Config Variables
$SiteURL = "https://crescenttech.sharepoint.com/sites/Marketing"

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

#Get the site collection
$Site = Get-PnPTenantSite -Url $SiteURL -Detailed

#Get Site collection details
Write-host "Title:" $Site.Title
Write-host "Url:" $Site.Url
Write-host "Subsites Count:" $Site.WebsCount
Write-host "Last Content Modified Date:" $Site.LastContentModifiedDate
Write-host "Status:" $Site.Status
Write-host "Lock State:" $Site.LockState
Write-host "Storage Quota:" $Site.StorageMaximumLevel
Write-host "Storage Quota Warning Level:" $Site.StorageWarningLevel
Write-host "Used:" $Site.StorageUsage
Write-host "Compatibility Level:" $Site.CompatibilityLevel
Write-host "Template:" $Site.Template
Write-host "Sharing Capability:" $Site.SharingCapability
Write-host "Site Owner:" $Site.Owner
My Another post on getting all site collections using PowerShell in SharePoint Online: Get All Site Collections using PowerShell
Get All SharePoint Online Site Collections Inventory using PowerShell Get All SharePoint Online Site Collections Inventory using PowerShell Reviewed by Salaudeen Rajack on December 24, 2017 Rating: 5

No comments:

Please Login and comment to get your questions answered!

Powered by Blogger.