Windows 7 下脚本启用或者关闭网卡的方法

方法一:NetSH 大法~
采用下列 Netsh 脚本

Netshell Script
1
2
interface
set interface name="Local Area Connection" admin=ENABLED/DISABLED

方法二:Powershell+WMI 大法

Powershell
1
2
$adapter = get-wmiobject Win32_NetworkAdapter -filter "NetConnectionID='Local Area Connection'"
$adapter.Disable()

同理可以 VBS+WMI 大法~
这个就不说了~没啥意义了~

其中有一个非常重要的问题就是权限控制问题!
Windows 7 的 UAC 很严格,不能像 WinXP 里那样随意修改系统设置而不通知用户。
如果不赋予脚本执行环境以 Administrative 权限的话,脚本会执行失败,WMI 返回码为 05,Netsh 报错:“An interface with this name is not registered with the router.”
因此在启动 Netsh 或者 Powershell 时需要指定 Administrative 权限,可通过右键菜单 Run as Administrator 实现。
然后会出现 UAC,Allow 即可~
由于 UAC 权限具有继承性,即一个具有 Administrative 权限的 Process 启动的 Process 默认是具有 Administrative 权限的(除非显式的禁止继承)~
因此可以通过启动一个有 Administrative 的 Cmd 或者 Powershell 的 Shell 来让脚本具有 Administrative 权限~

该方法仅在 Win7 下测试通过~WinXP 下不通过~
似乎原因是由于 WinXP 的 WMI Class 不支持 Enable 和 Disable 方法造成的~具体解决方案未知。