如何从命令行执行 WMI 调用?

如何从命令行执行 WMI 调用?

我一直按照以下说明成功地将风扇调至静音模式:

Rog Gaming Center 中的风扇超压停留在平衡模式

相关部分包括:

  1. 下载并解压 WMI Explorer。

  2. 右键单击 WmiExplorer.exe 并选择以管理员身份运行。

  3. 在 WMI 资源管理器中,单击左上角的连接。

  4. 在命名空间框中,双击 ROOT/WMI。

  5. 在类别框中,找到 Asus ATK 类别并双击它(注意,在我的笔记本电脑上,该类别名为“WMI:AsusAtkWmi_WMNB”

  6. 在实例框中,右键单击 Asus ATK 实例,然后在出现的第一个下拉菜单中,将鼠标悬停在执行方法上,然后在第二个下拉菜单中左键单击 DEVS。

  7. 在控制状态中输入 2,在设备 ID 中输入 1114136

但是,如何在命令提示符/Powershell 中实现相同的效果?我尝试阅读 Microsoft 的 WMIC 文档,但不知道如何浏览命名空间、类和实例。

这可能是一个 XY 问题,因为我这样做的原因是笔记本电脑从关机或睡眠状态唤醒后通话无法继续,因此对于实际问题本身的任何建议也欢迎。

答案1

这应该在 PowerShell 中以管理员身份运行:

(Get-WmiObject -Namespace root/WMI -Class AsusAtkWmi_WMNB).DEVS(1114136, 2)

这基本上复制了您为 WMI Explorer 获得的说明,但使用 PowerShell 语言:

  1. 通过以下方式找到正确的 WMI 对象获取 WmiObject,指定要查找的类名和命名空间
  2. 调用其上的 DEVS 方法,将设备 ID 作为参数 1 传递,将控制状态作为参数 2 传递

Get-WmiObject -Namespace root/WMI -Class AsusAtkWMI_WMNB将为您提供有关该类的基本信息,包括可用方法的列表。 (Get-WmiObject -Namespace root/WMI -Class AsusAtkWMI_WMNB).DEVS)将为您提供有关该方法的信息,特别是参数的列表和类型。


请注意,Get-WmiObject似乎已被弃用/取代Get-CimInstance,然后您就可以运行Get-CimInstance -Namespace root/WMI -Class AsusAtkWMI_WMNB以获取看起来相同的对象。虽然我没有设法在结果中列出(或调用)WMI 方法;但我对 PowerShell 几乎一无所知,所以我很可能错过了一些非常基本的东西。

相关内容