I'd go with the powershell as well, but here's one more alternative:
I've used SQLRecon in the past, which is free and did the job for me, but was last created in 2005;
http://www.specialopssecurity.com/labs/sqlrecon/
I just ran it on my network again with default settings, and noticed it did not find any of my local instances like \SQL2005 and \SQL2012 , only my default instance, which is running 2008R2.
Lowell