埃德蒙顿华人社区-Edmonton China

 找回密码
 注册
查看: 2971|回复: 0

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

[复制链接]
鲜花(3) 鸡蛋(1)
发表于 2011-3-4 21:58 | 显示全部楼层 |阅读模式
老杨团队,追求完美;客户至上,服务到位!
方法一:NetSH大法~1 e; g! F' R: c* N, ]" w0 S
采用下列Netsh脚本
( {: a, y7 v/ k- winterface- w6 [4 S$ Z  Z. g
set interface name="Local Area Connection" admin=ENABLED/DISABLED. H( G0 K: I& I6 U

7 s; t/ y1 B% }/ F方法二:Powershell+WMI大法
1 t7 [4 A1 m$ ~: M" V* |% T$adapter = get-wmiobject Win32_NetworkAdapter -filter "NetConnectionID='Local Area Connection'"
8 F$ ^9 g0 _- N( q9 h8 U0 I$adapter.Disable()# E! ~1 O( A$ c" m/ M7 r
" u3 n" p* Z; w# E4 N. A  U
同理可以VBS+WMI大法~
# y4 ~( z7 N+ T; B! E. Q. u这个就不说了~没啥意义了~
( P+ t$ x! b* X6 H, d2 s/ T$ b/ s) s9 x2 j, t
其中有一个非常重要的问题就是权限控制问题!
" d6 L7 n: G8 ~* M. s* k; ]5 wWindows 7的UAC很严格,不能像WinXP里那样随意修改系统设置而不通知用户。) D- ~1 I* [# ]& z5 M
如果不赋予脚本执行环境以Administrative权限的话,脚本会执行失败,WMI返回码为05,Netsh报错:“An interface with this name is not registered with the router.”: C9 _: A3 e# D7 C
因此在启动Netsh或者Powershell时需要指定 Administrative权限,可通过右键菜单Run as Administrator实现。8 |6 A! F: O) A* N. z
然后会出现UAC,Allow即可~4 Y. q: a3 C2 a3 u+ [& z7 Y
由于UAC权限具有继承性,即一个具有Administrative权限的Process启动的Process默认是具有Administrative权限的(除非显式的禁止继承)~8 F2 }5 Z/ S$ e. s& T' S
因此可以通过启动一个有Administrative的Cmd或者Powershell的Shell来让脚本具有Administrative权限~. J! n0 z& A* z  B9 I' `
0 @$ R# a* |8 q* [) {
该方法仅在Win7下测试通过~WinXP下不通过~6 O0 O9 j0 V; `8 x, j5 l; D* H6 [4 j
似乎原因是由于WinXP的WMI Class不支持Enable和Disable方法造成的~具体解决方案未知。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系我们|小黑屋|手机版|Archiver|埃德蒙顿中文网

GMT-7, 2026-5-28 12:52 , Processed in 0.104648 second(s), 10 queries , Gzip On, APC On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表