我可以以编程方式启动Windows Management Instrumentation服务吗?
问题描述:
我的应用程序取决于WMI
,但某些用户在Windows上默认关闭了它。以编程方式启动它是一个好主意吗?如果是这样,我该怎么做?欢迎任何.NET/C/C++我可以以编程方式启动Windows Management Instrumentation服务吗?
答
根据MSDN,如果WMI服务未运行,则“在第一个管理应用程序或脚本请求连接到WMI名称空间时自动启动”。。
所以你不需要手动启动它。但是,如果你需要,该ServiceController class会是一个方法:
using(ServiceController sc = new ServiceController("winmgmt"))
{
sc.Start();
}
这需要你参考并导入System.ServiceProcess
命名空间。
我想这不起作用,因为服务不仅是开始,它也是禁用的。我不得不打开它并手动启动它的工作 – Jack
@Jack:你可以看到[这个答案](http://stackoverflow.com/a/24947650/3740093)如何使用WinAPI启用服务。 –
这是我在找的,谢谢!我不确定应该使用哪个名称作为serviceName paramaeter?例如,我想获取用户物理mac地址,我正在使用这个WQL查询:'Select * FROM Win32_NetworkAdapterConfiguration'服务名称是'NetworkAdapterConfiguration'? – Jack