Add-PSSNapin Microsoft.SharePoint.PowerShell $farmName = "SPProdFarm"; $documentExportLocation = "D:\ExportedFiles\" + $farmName + "_SPDocumentInventory.csv"; $siteExportLocation = "D:\ExportedFiles\" + $farmName + "_SPSiteInventory.csv"; $SPDocumentInventory = @(); $SPSiteInventory = @(); $webAppCounter = 1; $siteCollectionCounter = 1; $siteCounter = 1; $allWebApps = Get-SPWebApplication; foreach($webApp in $allWebApps) { foreach($siteCollection in $webApp.Sites) { $allWebs = Get-SPSite $siteCollection | Get-SPWeb -Limit All; foreach($web in $allWebs) { $spWeb = Get-SPWeb $web.Url; #Calculate percentage complete, activity and status for output $completionPercent = [math]::Round(($siteCounter/$allWebs.Count) * 100); $completionStatus = "($($completionPercent)%) Collected inventory for $($siteCounter) of $($allWebs.Count) sites"; $completionActivity = "Collecting Inventory for $($spWeb.Url) - $($siteCollectionCounter) of $($webApp.Sites.Count) Site Collections - $($webAppCounter) of $($allWebApps.Count) Web Applications"; Write-Progress -Activity $completionActivity -Status $completionStatus -PercentComplete $completionPercent; $newSiteItem = New-Object –TypeName PSObject; $newSiteItem | Add-Member –MemberType NoteProperty –Name Farm –Value $farmName; $newSiteItem | Add-Member –MemberType NoteProperty –Name WebApplicationURL –Value $webApp.Url; $newSiteItem | Add-Member –MemberType NoteProperty –Name SiteCollectionURL –Value $siteCollection.Url; $newSiteItem | Add-Member –MemberType NoteProperty –Name WebURL –Value $web.Url; $SPSiteInventory += $newSiteItem; foreach($list in $spWeb.Lists) { if($list.BaseType -eq "DocumentLibrary" -and ($list.Hidden -eq $false)) { $spQuery = New-Object Microsoft.SharePoint.SPQuery; $spQuery.ViewAttributes = "Scope='Recursive'"; $listItems = $list.GetItems($spQuery); foreach($item in $listItems) { $fileExtension = [System.IO.Path]::GetExtension($item.Url); $newDocItem = New-Object –TypeName PSObject; $newDocItem | Add-Member –MemberType NoteProperty –Name Farm –Value $farmName; $newDocItem | Add-Member –MemberType NoteProperty –Name WebApplicationURL –Value $webApp.Url; $newDocItem | Add-Member –MemberType NoteProperty –Name SiteCollectionURL –Value $siteCollection.Url; $newDocItem | Add-Member –MemberType NoteProperty –Name WebURL –Value $web.Url; $newDocItem | Add-Member –MemberType NoteProperty –Name DcoumentURL –Value $item.Url; $newDocItem | Add-Member –MemberType NoteProperty –Name FileExtension –Value $fileExtension; $SPDocumentInventory += $newDocItem; } } } $siteCounter = $siteCounter + 1; } $siteCounter = 0; $siteCollectionCounter = $siteCollectionCounter + 1; } $siteCollectionCounter = 0; $webAppCounter = $webAppCounter + 1; } $SPSiteInventory | Export-CSV $siteExportLocation -NoTypeInformation $SPDocumentInventory | Export-CSV $documentExportLocation -NoTypeInformation