PowerShell iterate and get all SharePoint sites and sub sites

Here is a PowerShell script which can be used to iterate entire Web Application and generate a report on it.

Get all sites and subsites within SharePoint Web Application
Get-SPWebApplication http://sharepointsite | 
Get-SPSite -Limit All | Get-SPWeb -Limit All | 
Select Title, URL | 
Export-CSV C:\SharePoint_Sites_Report.csv -NoTypeInformation

The Above code gets only the Site Title and Site URL in the report. You can add more parameters to the script to get more information like Size, Type, etc.