PowerShell SMO ManagedComputer.ServerInstances 集合为空
PowerShell SMO ManagedComputer.ServerInstances Collection is Empty
我正在尝试使用 ManagedComputer.ServerInstances 集合枚举 SQL 个服务器实例:
[reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.SqlWmiManagement")
$ManagedComputer = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer
$ManagedComputer
预期输出类似于以下内容:
ConnectionSettings : Microsoft.SqlServer.Management.Smo.Wmi.WmiConnectionInfo
Services : {MSSQLSERVER, SQLBrowser...}
ClientProtocols : {np, sm, tcp}
ServerInstances : {MSSQLSERVER}
...
对于我管理的一台特定主机,ServerInstances 集合为空:
ConnectionSettings : Microsoft.SqlServer.Management.Smo.Wmi.WmiConnectionInfo
Services : {MSSQLSERVER, SQLBrowser...}
ClientProtocols : {np, sm, tcp}
ServerInstances : {}
...
使用了 64 位 PowerShell v5 会话。默认 SQL Server 2016 实例安装在整个队列中。什么可能导致 ServerInstances 集合为空?
在某些情况下,主机上安装了 SQL Server Management Studio 2017。这可能会对查询 ServerInstance 集合产生影响吗?
在与 Microsoft 支持人员通话后,他们确认如果 SQL Server Management Studio 2017 与 SQL Server 2016 一起安装,WMI 程序集可能会不时损坏。即使在 运行 mofcomp 重新编译 WMI 存储库之后,问题仍然存在。
卸载 SSMS 2017 并安装最新版本后,此问题已解决。
我正在尝试使用 ManagedComputer.ServerInstances 集合枚举 SQL 个服务器实例:
[reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.SqlWmiManagement")
$ManagedComputer = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer
$ManagedComputer
预期输出类似于以下内容:
ConnectionSettings : Microsoft.SqlServer.Management.Smo.Wmi.WmiConnectionInfo
Services : {MSSQLSERVER, SQLBrowser...}
ClientProtocols : {np, sm, tcp}
ServerInstances : {MSSQLSERVER}
...
对于我管理的一台特定主机,ServerInstances 集合为空:
ConnectionSettings : Microsoft.SqlServer.Management.Smo.Wmi.WmiConnectionInfo
Services : {MSSQLSERVER, SQLBrowser...}
ClientProtocols : {np, sm, tcp}
ServerInstances : {}
...
使用了 64 位 PowerShell v5 会话。默认 SQL Server 2016 实例安装在整个队列中。什么可能导致 ServerInstances 集合为空?
在某些情况下,主机上安装了 SQL Server Management Studio 2017。这可能会对查询 ServerInstance 集合产生影响吗?
在与 Microsoft 支持人员通话后,他们确认如果 SQL Server Management Studio 2017 与 SQL Server 2016 一起安装,WMI 程序集可能会不时损坏。即使在 运行 mofcomp 重新编译 WMI 存储库之后,问题仍然存在。
卸载 SSMS 2017 并安装最新版本后,此问题已解决。