C# 如何用代码判断系统是否开启wmi
C# 如何用代码判断系统是否开启wmi https://pic.imgdb.cn/item/63ec2d12f144a01007f83c49.jpgusing System;
using System.Management;
namespace WMI_Test
{
class Program
{
static void Main(string[] args)
{
try
{
// 创建一个WMI管理类
ManagementClass mc = new ManagementClass("Win32_Service");
// 获取WMI管理类的实例
ManagementObjectCollection moc = mc.GetInstances();
// 遍历每一个实例
foreach (ManagementObject mo in moc)
{
// 判断是否是WMI服务
if (mo["Name"].ToString().ToLower() == "winmgmt")
{
// 判断WMI服务是否开启
if (mo["Started"].ToString().ToLower() == "true")
{
Console.WriteLine("WMI服务已开启");
}
else
{
Console.WriteLine("WMI服务未开启");
}
}
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
//Console.ReadKey();
}
}
}
sgbyg 发表于 2023-2-15 08:54
using System;
using System.Management;
namespace WMI_Test
用wmi服务去查询
如果wmi服务未开启,应该是查不到结果,执行异常处理里的代码 小贾飞剑 发表于 2023-2-15 09:04
用wmi服务去查询
如果wmi服务未开启,应该是查不到结果,执行异常处理里的代码
ai给的代码没注意看细节{:301_999:} 现在AI都可以给出代码了 sgbyg 发表于 2023-2-15 09:13
ai给的代码没注意看细节
厉害了。可惜我都没法注册账号 判断VMI服务是否运行就可以了!{:1_905:} yingfeng 发表于 2023-2-15 11:43
判断VMI服务是否运行就可以了!
知道啊,关键不知道用代码怎么判断 string serviceName = "winmgmt";
ServiceController controller = new ServiceController(serviceName);
if (controller.Status == ServiceControllerStatus.Running)
{
Console.WriteLine("The WMI service is running.");
}
else
{
Console.WriteLine("The WMI service is not running.");
} 可以使用 ManagementScope 类来判断系统是否开启 WMI,代码如下:
using System.Management;
try
{
ManagementScope scope = new ManagementScope("\\\\.\\root\\cimv2");
scope.Connect();
Console.WriteLine("WMI enabled.");
}
catch (ManagementException ex)
{
Console.WriteLine("WMI disabled. Error message: " + ex.Message);
}
其中 ManagementScope 类是用于表示 WMI 服务的范围,连接到 WMI 服务时可以调用 Connect() 方法。如果连接成功,则说明 WMI 已经开启;如果连接失败,则说明 WMI 没有开启。
页:
[1]
2