$MachineName = ‘.’ # Replace . with server name for a remote computer $reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey(‘LocalMachine’, $MachineName) $regKey= $reg.OpenSubKey("SOFTWARE\\Microsoft\\Microsoft SQL Server\\Instance Names\\SQL" ) $values = $regkey.GetValueNames() $values | ForEach-Object {$value = $_ ; $inst = $regKey.GetValue($value); $path = "SOFTWARE\\Microsoft\\Microsoft SQL Server\\"+$inst+"\\MSSQLServer\\"+"CurrentVersion"; #write-host $path; $version = $reg.OpenSubKey($path).GetValue("CurrentVersion"); write-host "Instance" $value; write-host "Version" $version}