SQL Server 2008 默认不安装 DMO。是否有一个函数或脚本我可以从命令提示符中使用来检查远程服务器以查看是否已安装 DMO?我们使用注册表项检查,但认为这可能不是最佳选择。任何建议都值得赞赏!
答案1
我假设你的意思是 SMO(DMO 在 SQL 2005 中被 SMO 取代)。
您可以在 Powershell 中执行此快速而粗略的测试:
PS C:\> [Reflection.Assembply]::LoadWithPartialName("Microsoft.SqlServer.Smo")
如果 SMO 已注册,它将返回一些关于在哪里找到 SMO dll 以及其版本的信息。
GAC Version Location
--- ------- --------
True v2.0.50727 C:\.........
如果您不想在 Powershell 中执行此操作,也可以使用这个 VBS 脚本:
Dim sqlServer
set sqlServer = CreateObject("Microsoft.SQLServer.Management.SMO.Server")
set sqlServer = nothing
如果它返回运行时错误"ActiveX component can't create object: 'Microsoft.SqlServer.Smo.Server'"
,则 SMO 未安装(或至少未注册)。