【问题标题】:How to check if SQL Server 2012 Shared Management Objects (SMO) is installed如何检查是否安装了 SQL Server 2012 共享管理对象 (SMO)
【发布时间】:2013-04-17 09:49:08
【问题描述】:

要配置安装助手,我必须检查是否已安装 SQL Server 2012 SMO。我找到了一些针对旧版本 SQL Server(例如 herehere)的答案以及检查注册表项 HKEY_CLASSES_ROOT\Microsoft.SqlServer.Management.Smo.Database 的解决方案,但这对我不起作用。此注册表项在 Windows Vista 和 Windows 7 中不存在,我认为 SQL Server 2012 版有所更改。

【问题讨论】:

    标签: sql-server smo


    【解决方案1】:

    如果您要检查已安装的组件,那么最好的办法是检查卸载注册表项。

    在我的机器上,“Microsoft SQL Server 2012 Management Objects (x64)”的键值是这样的:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{43A5C316-9521-49C3-B9B6-FCE5E1005DF0}
    

    如果您需要,32 位版本可能有不同的密钥条目,但这是我在担任 SCCM 管理员时经常进行软件安装检查的方式。

    编辑:由于微软似乎在每个版本都更改了卸载密钥,因此很难以这种方式跟踪安装,这里还有另一个密钥可能是一个很好的检查:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\SharedManagementObjects\CurrentVersion
    

    您可以检查 this 的值以查看它是否大于 11,如果不是(或不存在)则进行安装。

    【讨论】:

    • 感谢您的回答!在我的机器上,注册表中的键是“...{FA0A244E-F3C2-4589-B42A-3D522DE79A42}”。也许每台机器都有另一个 GUID?那么,如果每台机器都有另一个 GUID,我怎么能使用这个注册表项呢?
    • 应该是包的GUID,在每台机器上应该是一样的,你的软件是什么版本的?我的是11.1.3000.0,可能是不同版本有不同的GUID,这有点烦人但不是无法解决的问题。
    • 在我的机器上安装了 11.0.2100.60 版本,这可能是一个解释。但是我认为您的想法很难实现...我的安装助手应该接受每个版本> 11.0,并且每次Microsoft发布新的SMO时我都无法更新安装助手。还有其他解决方案吗?
    • 好的,我在我的机器上闲逛了一下,认为我找到了另一个合适的密钥,看看我回答中的编辑,看看它是否适合你。
    • 太棒了!作品,非常感谢!现在,我检查 HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\SharedManagementObjects\CurrentVersion\Version 是否大于 11
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 2016-04-23
    相关资源
    最近更新 更多