卸载设备并重新连接wifi的脚本

卸载设备并重新连接wifi的脚本

没有任何运气修复与某个硬件组件相关的问题并且华硕官方支持没有提供成功的解决方案,我有兴趣通过一些 shell 脚本自动卸载该设备。

本质上,由于设备已知,因此某些识别代码可能被硬编码。本质上,脚本应该执行以下操作:

  1. 在设备管理器中查找设备。

  2. 执行相当于“右键单击 -> 卸载 -> 是”的操作

  3. 关闭 Wifi

  4. 打开 Wifi

  5. (最好有):检查设备是否存在(即是否由 Windows 自动重新安装),如果是,则重复 1)。

如果在 Windows 10 中能有类似这样的 crontab 就太好了。但是由于没有在 Windows 中编写脚本的经验,我不确定 a) 这是否可行;b) 由于各种安全问题,实现起来有多难。有类似的例子吗?我该从哪里开始?这是问这个问题的正确 SE 吗?

注意:虽然这实际上可能是 XY 问题,但到目前为止,华硕支持可以提供的最好的服务就是为设备提供保修/维修服务,这是目前最不具吸引力的选择。

环境:Windows 10 Education 64位,ASUS GL504GM机器。


关闭: 如果其他人遇到同样的问题,请添加一个带有工作脚本的答案。

就我的具体情况而言,华硕支持声称该问题是基于硬件的,并建议进行维修(我一直没有机会这样做,因为我不能因为这么小的问题而丢失几个月的机器)。

答案1

终于找到了似乎可以工作的代码(在我的计算机上)。对于遇到类似问题的其他任何人,请谨慎使用代码,有两个变量需要修改:NetAdapter 的FriendlyName和。-Name

# Find all Realtek devices:
$Devs = Get-PnpDevice -class net | ? FriendlyName -like "*Realtek*"

if ($Devs.length -gt 0) {
     ForEach ($Dev in $Devs) {
         Write-Host "Removing $($Dev.FriendlyName)" -ForegroundColor Cyan
         $RemoveKey = "HKLM:\SYSTEM\CurrentControlSet\Enum\$($Dev.InstanceId)"
         Get-Item $RemoveKey | Select-Object -ExpandProperty Property | %{ Remove-ItemProperty -Path $RemoveKey -Name $_ -Verbose }
     }
     Write-Host "Done.  Restarting wifi." -ForegroundColor Green

     # Restarting the wifi:
     Get-NetAdapter -Name Wi-Fi | Restart-NetAdapter
     Write-Host "Done. " -ForegroundColor Green
} else{
    Write-Host "All looks good." -ForegroundColor Green
}

相关内容