SQL Server Installed Instances
                                          There is many ways to find SQL Server Installed Instances given physical server.Microsoft providers few methoed,
- Registry reader
 
- SQL Server folder information reader
 
- Windows Service information reader
 
Registry reader
EXECUTE master..xp_regread
  @rootkey = 'HKEY_LOCAL_MACHINE',
  @key = 'SOFTWARE\Microsoft\Microsoft SQL Server',
  @value_name = 'InstalledInstances';
GO
EXECUTE master..xp_regenumvalues
  @rootkey = 'HKEY_LOCAL_MACHINE',
  @key = 'SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL';
GO
Windows Service information reader
DECLARE @T TABLE (data nvarchar(4000));
INSERT INTO @T
EXEC master..xp_cmdshell 'sc query';
SELECT CASE WHEN data='SERVICE_NAME: MSSQLSERVER' THEN HOST_NAME() ELSE REPLACE(data,'SERVICE_NAME: MSSQL$',HOST_NAME()+'\') END  SQLServerInstalledInstances 
FROM @T WHERE data LIKE '%SERVICE_NAME: MSSQL%';
 
If you need to find server physical file location then following SQL Statements will helps, 
--and if you need to view file location give sql server Instances   
SELECT InstanceDefaultDataPath = serverproperty('InstanceDefaultDataPath')-- only 2012 OR later
SELECT TOP 1 REPLACE(REPLACE([filename],'master.mdf',''),'mastlog.ldf','') file_location FROM master.sys.sysfiles;
 
Most of SQL Server instances not enabled xp_cmdshell system procedures. if not you need to enabled it when needed.
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1;
GO
RECONFIGURE;
GO
/*
Add your T-SQL Code 
*/
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 0;
GO
RECONFIGURE;
GO
 
Cheers...
and Most welcome your comments and ideas...