在 powershell 中试试这个:
Get-WmiObject -Namespace "root\Microsoft\SqlServer\ComputerManagement10" -Class SqlServiceAdvancedProperty -ComputerName <SERVERNAME> | Format-Table ServiceName, PropertyName, PropertyNumValue, PropertyStrValue -AutoSize
root\Microsoft\SqlServer\ComputerManagement10
对 sql server 2008 及更高版本以及root\Microsoft\SqlServer\ComputerManagement
2005使用命名空间。
您可以使用命名空间从 .net 实现此结果System.Management
。
更新
您可以使用它来检测安装了哪种 SQL Server WMI 提供程序。
public static IEnumerable<string> EnumCorrectWmiNameSpace()
{
const string WMI_NAMESPACE_TO_USE = @"root\Microsoft\sqlserver";
try
{
ManagementClass nsClass =
new ManagementClass(
new ManagementScope(WMI_NAMESPACE_TO_USE),
new ManagementPath("__namespace"),
null);
return nsClass
.GetInstances()
.Cast<ManagementObject>()
.Where(m => m["Name"].ToString().StartsWith("ComputerManagement"))
.Select(ns => WMI_NAMESPACE_TO_USE + "\\" + ns["Name"].ToString());
}
catch (ManagementException e)
{
Console.WriteLine("Exception = " + e.Message);
}
return null;
}