Here are some of the PS code I use. To use the instance table, create the table, using the SQLServerInfoTableCreate. Rename it if you like. The LoadSQLServerInfo.ps1 script will update the table. You will need to update where the table is located and the instance or instances you want to connect to, to retrieve the information. I normally insert a row into the table, through SSMS with the server and instance name, but with a few changes, you could actually do an insert, instead of update in the PS code.
The DB Reporting Jobs has the code that does the reporting. Just create a job and add the code. I created a proxy, to use, that can connect to all of the servers in my list, so the script can connect with Windows authorization. You will need to update the smtp information in these scripts, as well as the location of the SQL Server that contains the instance list.
I also added a script, GetDatabaseInfo that will create an Excel spreadsheet. This one I use to inventory my servers.
None of these make any changes to the SQL Servers, but, as has been said before, test first.
Any questions or issues, please feel free to contact me.