使用 SMO WMI ManagedComputer 枚举 SQL Server 实例时出现异常

使用 SMO WMI ManagedComputer 枚举 SQL Server 实例时出现异常

我正在尝试在安装了 SQL Server 2008 R2 的 Windows 7 上使用 PowerShell 2.0 中的 SMO WMI API/对象来获取本地计算机上的 SQL Server 实例列表管理计算机对象。但是,当我实例化对象后尝试访问其上的任何数据时,会出现异常。我以管理员身份运行 PowerShell。

$computer = New-Object Microsoft.SqlServer.Management.Smo.WMI.ManagedComputer ($env:computername)
$computer.ServerInstances

导致此错误:

尝试枚举集合时引发了以下异常:“尝试管理服务时,SMO 中发生异常。”。
位于行:1 字符:89
+ (New-Object Microsoft.SqlServer.Management.Smo.WMI.ManagedComputer ($env:computername))。<<<< ServerInstances
+ CategoryInfo : NotSpecified: (:) [], ExtendedTypeSystemException
+ FullyQualifiedErrorId : ExceptionInGetEnumerator

我必须启用某些服务才能使其正常工作吗?WMI 服务正在运行。我还需要其他设置吗? 为什么我无法枚举 SQL Server 实例?

答案1

您是以管理员身份运行此代码的吗?访问 WMI 需要 WMI 权限。但是,我使用了另一种方法。我在此处记录了该方法:http://www.powershellmagazine.com/2013/04/24/pstip-enumerate-all-sql-server-instances-in-a-network/

[Microsoft.SqlServer.Management.Smo.SmoApplication]::EnumAvailableSqlServers("MyDBServer")

相关内容