使用 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%'"
那么,你应该可以在对象上调用disable
、enable
、reset
等:
$adapter.disable()
祝你好运!
【讨论】:
谢谢!我在让第二行工作时遇到了一点麻烦,在研究它时,我遇到了一个可以完成这项工作的简单 cmdlet:Disable-NetAdapter -Name 'NIC Name'
(需要管理员权限)WMI 似乎更强大,所以我可能会使用它而是以上是关于使用 powershell 编辑设备管理器的主要内容,如果未能解决你的问题,请参考以下文章