C# 设备管理器中设备的启用/禁用

1.需要查找到相关的一系列设备
2.遍历这些设备,根据某些条件找到需要的设备
3.把设备拿到后,调用对应的禁用和启用方法

//用于存放获取到的设备
ManagementObject USB=null;

//获取需要设备
public void GetDevices()
{
//根据某个条件查找到对应设备
ManagementObjectSearcher searcher = new ManagementObjectSearcher(“SELECT * FROM win32_PnPEntity”);

//遍历所有设备信息
foreach (ManagementObject mgt in searcher.Get())
{
//按名字筛选
if (Convert.ToString(mgt[“Name”]) == “USB 大容量存储设备”)
{
USB=mgt;
}
}
}

//启用方法
public void DeviceEnable()
{
if(USB==null)
{
return;
}
try
{
USB.InvokeMethod(“Enable”,null);
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}
}

//禁用方法
public void DeviceDisable()
{
if(USB==null)
{
return;
}
try
{
USB.InvokeMethod(“Disable”,null);
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}
}

条件即是FROM后的win32_PnPEntity,可以根据不同的条件查找到不同的内容。
常用的一些类库名可以检索 WMI使用的WIN32_类库名WMI使用的WIN32_类库名

启用是调用方法InvokeMethod(“Enable”,null);

禁用用是调用方法InvokeMethod(“Disable”,null);

注意:调用该方法是需要以管理员身份运行的!!!