在 C# .NET 中使用 WMI 查找所有 Windows 服务

这篇文章中,我们看到了如何使用 Windows Management Instrumentation – WMI 检索所有逻辑驱动器,以及如何找到所有网络适配器。

假设您想获取在本地“root”机器上运行的所有 Windows 服务及其属性的列表,即阅读此处列出的服务:

以下代码将查找找到的所有 Windows 服务的所有非空属性:

private static void ListAllWindowsServices()
{
	ManagementObjectSearcher windowsServicesSearcher = new ManagementObjectSearcher("root\\cimv2", "select * from Win32_Service");
	ManagementObjectCollection objectCollection = windowsServicesSearcher.Get();

	Console.WriteLine("There are {0} Windows services: ", objectCollection.Count);

	foreach (ManagementObject windowsService in objectCollection)
	{
		PropertyDataCollection serviceProperties = windowsService.Properties;
		foreach (PropertyData serviceProperty in serviceProperties)
		{
			if (serviceProperty.Value != null)
			{
				Console.WriteLine("Windows service property name: {0}", serviceProperty.Name);
				Console.WriteLine("Windows service property value: {0}", serviceProperty.Value);
			}
		}
		Console.WriteLine("---------------------------------------");
	}
}

在撰写这篇文章时,我的 PC 上运行了 196 个服务。以下是 Adob​​e Flash Player 更新服务的输出示例:

一旦您知道 WMI 类的属性名称,您就可以扩展 SQL 查询。例如,这是查找所有非运行服务的方法:

ManagementObjectSearcher windowsServicesSearcher = new ManagementObjectSearcher("root\\cimv2", "select * from Win32_Service where Started = FALSE");

您可以在此处查看与诊断相关的所有帖子。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值