<Lecture>
In theory, you should be reviewing the output documentation of your environment on a weekly basis. You could even go as far as importing the results into SQL, and tracking your growth and changes of your SharePoint Farm with SSRS.
</Lecture>
This script will create a folder, go through your farm, and create the appropriate .csv file as long as you have the appropriate permissions to run the script and you have permissions to access the data.
There are several blog posts on how to take all the .csv files and merge them into one .xlsx file. Here are a couple that I found useful. You will notice that they call the ComObject Excel.Application, so if you do not have Excel installed or the appropriate Office System Driver Connectivity Components installed, you will get an error.
This post by Jeff Hicks was very informational about how to get everything working:
This page actually has a .ps1 for you to download, but in the Q&A section, imfrancisd has a script that works very nicely as well.
Update (01/10/2012)
Added -Limit All
Update (10/30/2014)
Added a check to see if Backup location ends with "\"
Added URL to Sandbox Solution location for output
Added site structure output for entire farm
Added Disposal of objects
Update (10/21/2015)
Moved Script to Gist
Fixed error in Get Features section thanks to Matthew Bramer (@ionline247)
Cleaned up Get Site Structure section to get ALL webs within each Site Collection by Web Application.
Update (01/10/2012)
Added -Limit All
Update (10/30/2014)
Added a check to see if Backup location ends with "\"
Added URL to Sandbox Solution location for output
Added site structure output for entire farm
Added Disposal of objects
Update (10/21/2015)
Moved Script to Gist
Fixed error in Get Features section thanks to Matthew Bramer (@ionline247)
Cleaned up Get Site Structure section to get ALL webs within each Site Collection by Web Application.
Thanks for this! Just saved me a lot of time piecing together disparate scripts.
ReplyDeleteDo you happen to know how to get the IP address of your SQL server? Thanks!
Shae, you would use a script like the one in this blog post: http://blogs.msdn.com/b/powershell/archive/2006/06/26/647318.aspx
DeleteI will update the above script to include the server names and ip addresses.
-Patrick
$ComputerName = 'SP-SQL-01'
Delete[System.Net.Dns]::GetHostAddresses($ComputerName) |
Where-Object {
$_.AddressFamily -eq 'InterNetwork'
} | Select-Object -ExpandProperty IPAddressToString