• Nice script, though I see one issue: the SSIS service registry key name MsDtsServer is valid only for SQL2005. It was subsequently renamed MsDtsServer100, MsDtsServer110, and MsDtsServer120 in SQL 2008, 2012, and 2014 respectively. This of course could just be handled with a CASE based on SERVERPROPERTY ('productversion').

    You might also want to gather the accounts under which the services are running, which you'll find in the ObjectName value under the service key, e.g. something like:

    EXEC xp_regread N'HKEY_LOCAL_MACHINE', @REGKEY, N'ObjectName', @MSSQLServiceAccountName OUTPUT, N'no_output'