PowerShell Script Get SharePoint Site collection Sites, List and libraries

Site and subsite information of site collection
$userarray = @()
$fth = “C:\Sites1.csv”
$wp = Get-SPWebApplication “http://SiteURL/”
foreach($sw in $wp){
foreach($sst in $wp.sites)
{

foreach($sweb in $sst.AllWebs)
{

$op = New-Object PSObject
$op | Add-Member NoteProperty -name “ParentWeb” -Value $sweb.ParentWeb
$op | Add-Member NoteProperty -name “Title” -Value $sweb.Title
$op | Add-Member NoteProperty -name “URL” -Value $sweb.Url
#$op | Add-Member NoteProperty -name “LastItemModifiedDate” -Value $sweb.LastItemModifiedDate
$userarray += $op

}
}
}
$userarray | Export-Csv $fth -NoTypeInformation

Get All list and documents in site collection
$userarray = @()
$TotalItems = 0
$SiteCollection = Get-SPSite http://SiteURL
ForEach ($Site in $SiteCollection.AllWebs)
{
ForEach ($List in $Site.Lists)
{
if($List.BaseTemplate -eq “DocumentLibrary”){

$op = New-Object PSObject
$op | Add-Member NoteProperty -name “Title” -Value $Site.Title
$op | Add-Member NoteProperty -name “URL” -Value $Site.Url
$op | Add-Member NoteProperty -name “ID” -Value $Site.ID
$op | Add-Member NoteProperty -name “ParentWeb” -Value $Site.ParentWeb
$op | Add-Member NoteProperty -name “ParentWebId” -Value $Site.ParentWebID
$op | Add-Member NoteProperty -name “TotalCount” -Value $List.ItemCount
$op | Add-Member NoteProperty -name “ListTitle” -Value $List.Title
$op | Add-Member NoteProperty -name “LastItemModifiedDate” -Value $List.LastItemModifiedDate
$op | Add-Member NoteProperty -name “Type” -Value “DocumentLibrary”
$userarray += $op

$TotalItems += $List.ItemCount

} else
{
$op = New-Object PSObject
$op | Add-Member NoteProperty -name “Title” -Value $Site.Title
$op | Add-Member NoteProperty -name “URL” -Value $Site.Url
$op | Add-Member NoteProperty -name “ID” -Value $Site.ID
$op | Add-Member NoteProperty -name “ParentWeb” -Value $Site.ParentWeb
$op | Add-Member NoteProperty -name “ParentWebId” -Value $Site.ParentWebID
$op | Add-Member NoteProperty -name “TotalCount” -Value $List.ItemCount
$op | Add-Member NoteProperty -name “ListTitle” -Value $List.Title
$op | Add-Member NoteProperty -name “LastItemModifiedDate” -Value $List.LastItemModifiedDate
$op | Add-Member NoteProperty -name “Type” -Value “List”

$userarray += $op

$TotalItems += $List.ItemCount
}
}
}
$userarray | Export-Csv “C:\tngCount18.csv” -NoTypeInformation

$ListsInfo.GetEnumerator() |sort name| Export-Csv E:\abs\countTNG.csv