如何使用PowerShell启用网卡的“仅允许魔术数据包唤醒计算机”复选框?
如何使用PowerShell启用网卡的“仅允许魔术数据包唤醒计算机”复选框?
我明白你的困扰——明明脚本没报错,但UI里的复选框就是没变化,确实挺让人头疼的。你原来的思路方向是对的,但那个“仅允许魔术数据包唤醒计算机”的复选框,其实对应着更严谨的设置逻辑,不是只改两个参数就能搞定的,我来给你说两种靠谱的解决办法:
方法一:完善Set-NetAdapterPowerManagement的参数设置
这个复选框的本质是只保留“魔术数据包唤醒”功能,彻底禁用所有其他唤醒触发器。你原来只禁用了模式匹配,但可能还有其他唤醒选项在后台启用着,导致UI的复选框没被触发。
你可以试试这个完整的脚本,把所有非魔术数据包的唤醒选项都禁用:
$macAddress = "XX-XX-XX-XX-XX-XX" $adapter = Get-NetAdapter | Where-Object { $_.MacAddress -eq $macAddress -and $_.Name -eq "Ethernet" } # 仅启用魔术数据包唤醒,禁用所有其他唤醒触发项 Set-NetAdapterPowerManagement -Name $adapter.Name ` -WakeOnMagicPacket Enabled ` -WakeOnPattern Disabled ` -WakeOnLink Disabled ` -WakeOnMediaDisconnect Disabled ` -WakeOnRing Disabled
如果你的网卡还有其他特殊的唤醒选项,可以先运行Get-NetAdapterPowerManagement -Name $adapter.Name查看当前所有设置,把额外的选项也一并禁用。
方法二:调用专用CIM方法(更精准对应UI选项)
其实Windows有个专门的CIM类方法,直接对应这个复选框的设置,逻辑上更精准,也更不容易出问题:
$macAddress = "XX-XX-XX-XX-XX-XX" $adapter = Get-NetAdapter | Where-Object { $_.MacAddress -eq $macAddress -and $_.Name -eq "Ethernet" } # 获取网卡对应的电源管理CIM实例 $powerMgmtInstance = Get-CimInstance -ClassName Win32_NetworkAdapterPowerManagement ` -Filter "InstanceID='$($adapter.InstanceID)'" # 调用专用方法启用“仅允许魔术数据包唤醒” Invoke-CimMethod -InputObject $powerMgmtInstance -MethodName EnableWakeOnMagicPacketOnly
注意事项
别忘了以管理员身份运行PowerShell哦!虽然修改时没报错,但权限不足也可能导致设置没有真正应用到系统里。运行完脚本后,你刷新一下网卡电源管理界面,那个复选框应该就乖乖被勾选上了。
备注:内容来源于stack exchange,提问作者EllipticalInitial
相关产品推荐
相关产品推荐

