吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 814|回复: 10
收起左侧

[求助] C# 如何用代码判断系统是否开启wmi

[复制链接]
ilovecomputer66 发表于 2023-2-15 08:46
C# 如何用代码判断系统是否开启wmi

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

sgbyg 发表于 2023-2-15 08:54

[C#] 纯文本查看 复制代码
using 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();
        }
    }
}
小贾飞剑 发表于 2023-2-15 09:04
sgbyg 发表于 2023-2-15 08:54
[mw_shl_code=csharp,true]using System;
using System.Management;
namespace WMI_Test

用wmi服务去查询
如果wmi服务未开启,应该是查不到结果,执行异常处理里的代码
sgbyg 发表于 2023-2-15 09:13
小贾飞剑 发表于 2023-2-15 09:04
用wmi服务去查询
如果wmi服务未开启,应该是查不到结果,执行异常处理里的代码

ai给的代码  没注意看细节
kenxy 发表于 2023-2-15 09:57
现在AI都可以给出代码了
 楼主| ilovecomputer66 发表于 2023-2-15 09:59
sgbyg 发表于 2023-2-15 09:13
ai给的代码  没注意看细节

厉害了。可惜我都没法注册账号
yingfeng 发表于 2023-2-15 11:43
判断VMI服务是否运行就可以了!
 楼主| ilovecomputer66 发表于 2023-2-15 12:06
yingfeng 发表于 2023-2-15 11:43
判断VMI服务是否运行就可以了!

知道啊,关键不知道用代码怎么判断
ttyy008 发表于 2023-2-15 13:10
[C#] 纯文本查看 复制代码
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.");
}

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
ilovecomputer66 + 1 + 1 谢谢@Thanks!

查看全部评分

ctacy 发表于 2023-2-15 13:46
可以使用 ManagementScope 类来判断系统是否开启 WMI,代码如下:


[C#] 纯文本查看 复制代码
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 没有开启。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 02:26

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表