I imagine everyone has their own approach to this.
Your approach of using linked servers will definitely work.
I use a C# application I wrote that lets me run T-SQL code against a select list of servers and provides a combined result set.
I also have an Excel spreadsheet with a macro that essentially does the same, but puts results in individual worksheets. I don't manage anywhere near that number of servers though.
Someone else I know uses registered servers somehow to run T-SQL against multiple servers.
As opc.three mentioned, you could probably do this through a Powershell script as well.
I don't know, but I'd guess Redgate offers some sort of tool for this sort of thing.