title: Get SQL Server database folder of selected instance by using vbscript
body: <p>Assume that you have a running SQL Server Express instance named (local)\SQLEXPRESS. Its database folder is c:\program files\Microsoft SQL Server\MSSQL.1\MSSQL\Data. </p>
  
  <p>How can VBScript be used to retrieve that folder? </p>
  
  <p>Maybe by using SMO? And if so, how? &lt;- Forget that. SMO uses .NET. Only possible in PowerShell.</p>
  
  <hr>
  
  <p><strong>Update:</strong>
  The reason for this is, that I am developing an MSI setup that uses a custom action (call to a .NET based assembly) for attaching mdf Files to an existing SQL server instance. for this, the .mdf files get transferred from the installation medium to the hard drive. So the setup needs to know where to place the files.</p>
  
  <p>Since I would like to support the standards, I need to place the files into the common data folder.</p>
  
  <hr>
  
  <p><strong>Update:</strong>
  When selecting a SQL server instance in InstallShield, the Property IS _ SQLSERVER _ SERVER is set with the instance name.</p>
  
  <p>I found out, that I can query the registry under HKLM\Software\Microsoft\Microsoft SQL Server\Instance Names\SQL to get the SQL name for the instance name (e.g. SQLEXPRESS -> MSSQL.1).</p>
  
  <p>With this information, I can query HKLM\Software\Microsoft\Microsoft SQL Server\MSSQL.1\Setup to retrieve the SQLDataRoot key. When I append a \Data to the value found here, I have the folder, I was looking for. </p>
  
  <p>However, is there a better way?</p>