SQL2008 R2機能パックのSharedManagementObjects.msiとWindowsレジストリ(SQL2008 R2 Devがこのマシンにインストールされている)を確認しました。これらは、SMO(すべてHKLMの下)を検出するために使用する必要があるregキーであると思います。
SOFTWARE \ Microsoft \ Microsoft SQL Server \ SharedManagementObjects \ CurrentVersion-これは明らかにメインキーであり、SMOの一部のバージョンがインストールされていることを示しています。
SOFTWARE \ Microsoft \ Microsoft SQL Server 2008 Redist \ SharedManagementObjects \ 1033 \ CurrentVersion-これは、おそらく2008英語がインストールされていることを意味します。おそらく、SOFTWARE \ Microsoft \ Microsoft SQL Server 2008 Redist\SharedManagementObjectsの存在を確認するだけで十分です。
同じことがSQL2012にも当てはまります:HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server 2012 Redist \ SharedManagementObjects \ 1033 \ CurrentVersion
しかし、SQL2005ではありません!このマシンにも2005がインストールされていますが。
もう1つ、SMOはMicrosoft SQL ServerシステムのCLRタイプに依存しているため、通常はMicrosoftSQLServerシステムのCLRタイプも必要になります。SQLSysClrTypes.msiには、SOFTWARE \ Microsoft \ Microsoft SQL Server \ RefCount\SQLSysClrTypesという1つのレジストリキーしかありません。