Полагаю, что куст для Независимых от экземпляра настроек (т.е. общих инструментов, которые не зависят от того, сколько экземпляров SQL Server вы используете) должен быть HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsft \ Microsoft SQL Server (номер версии) , Если вы не можете найти инструменты для версии HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ 100 (которые соответствуют SQL Server 2008), возможно, вы можете проверить версию 90 (SQL 2005) HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ 90?
Вы когда-нибудь видели, что в некоторых версиях Windows этот улей отличается?
Вот также статья, в которой объясняется, как получить экземпляры реестра с поддержкой Instance.
MSDN: расположение файлов для стандартных и именованных экземпляров SQL Server
В нашем сценарии установки мы используем значения из HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ MSSQL.1 \ Setup, например. где MSSQL.1 - это имя экземпляра, а имена экземпляров можно найти в HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ Instance Names
Также я видел несколько статей, которые рекомендуют прочитать из HKEY_LOCAL_MACHINE \ Software \ Microsoft \ MSSQLServer \ Setup
Я не буду работать на Windows XP, но он работает на Win 2003 Srv
См. sql-сервер-как-выбрать-путь-установки
Таким образом, у вас нет возможности, кроме как реализовать более сложную логику - сначала проверьте HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ MSSQLServer \ Setup, если не существует, проверьте HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ MSSQL.1 \ Setup ... Но это то, что вам нужно для папок с поддержкой экземпляров, таких как Binn, Data, Backup ...