使用 powershell 编辑设备管理器

Posted

技术标签:

【中文标题】使用 powershell 编辑设备管理器【英文标题】:Editing device manager using powershell 【发布时间】:2015-07-28 23:19:54 【问题描述】:

我的部分工作例程涉及在设备管理器中频繁启用/禁用网络适配器,这既乏味又耗时。 我正在学习 PowerShell,并想编写一个简单的脚本来自动启用/禁用网络适配器。

我正在尝试使用 WASP 管理单元,这似乎不太难,但我无法让它工作。

到目前为止我有:

    # Launch the Device Manager
    $deviceManager = Show-ControlPanelItem -Name "Device Manager"

    # Display all currently open windows. Device Manager should display as 'mmc'
    Select-Window | ft -auto

    # Select Device Manager as the active window
    Select-Window mmc | Set-WindowActive

    # Send input to device manager
    Select-Window mmc | Send-Keys "TAB"
    Select-Window mmc | Send-Keys "n"

如果正确读取键盘输入,则网络适配器应在设备管理器中突出显示。 相反,设备管理器打开并处于活动状态,但没有任何反应。

我做错了什么?如何使用 WASP 正确发送键盘输入?不需要 WASP,如果有更好的选择,我愿意使用其他工具。

【问题讨论】:

【参考方案1】:

尝试改用WMI

这将为您提供适配器列表:

Get-WmiObject -Class Win32_NetworkAdapter

您可以在Name 上使用过滤器来隔离单个适配器并将对象分配给变量:

$adapter = Get-WmiObject -Class Win32_NetworkAdapter -filter "Name LIKE '%MyAdapterName%'"

那么,你应该可以在对象上调用disableenablereset等:

$adapter.disable()

祝你好运!

【讨论】:

谢谢!我在让第二行工作时遇到了一点麻烦,在研究它时,我遇到了一个可以完成这项工作的简单 cmdlet:Disable-NetAdapter -Name 'NIC Name'(需要管理员权限)WMI 似乎更强大,所以我可能会使用它而是

以上是关于使用 powershell 编辑设备管理器的主要内容,如果未能解决你的问题,请参考以下文章

Powershell 检测设备管理器

Powershell 检测设备管理器

Powershell - 任务管理器 - 权限?

powershell 各种Windows桌面和资源管理器设置,但PowerShell

注册表怎么禁用powershell

powershell 测试配置管理器客户端版本。