埃德蒙顿华人社区-Edmonton China

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

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

[复制链接]
鲜花(3) 鸡蛋(1)
发表于 2011-3-4 21:58 | 显示全部楼层 |阅读模式
老杨团队,追求完美;客户至上,服务到位!
方法一:NetSH大法~# D0 _. `7 |4 y( r$ U
采用下列Netsh脚本- Q5 w  b& ?+ F  E
interface
8 W8 }( D2 A0 V1 hset interface name="Local Area Connection" admin=ENABLED/DISABLED7 Q8 h# [/ l3 T8 I, g4 q

+ D2 f+ _5 n: p( i6 n方法二:Powershell+WMI大法
( i# s. j5 W% k7 r. k$adapter = get-wmiobject Win32_NetworkAdapter -filter "NetConnectionID='Local Area Connection'"2 \, i  u" z5 |2 M- u) x! _: m
$adapter.Disable()
+ L2 }  I0 T$ U3 C' X- f) ^8 o& J* J, ?4 c& y% T/ c  B* @
同理可以VBS+WMI大法~9 V% B& V+ D* H) l0 k. T
这个就不说了~没啥意义了~+ u* q( X: x5 c. |7 r; K

7 b( x$ C4 R; }0 S9 E其中有一个非常重要的问题就是权限控制问题!( k1 q5 `& V, Y% f* A
Windows 7的UAC很严格,不能像WinXP里那样随意修改系统设置而不通知用户。; F& \  U+ T( g% q+ M* o- ]
如果不赋予脚本执行环境以Administrative权限的话,脚本会执行失败,WMI返回码为05,Netsh报错:“An interface with this name is not registered with the router.”
" V. _5 E8 Y1 p# |) c' a* }因此在启动Netsh或者Powershell时需要指定 Administrative权限,可通过右键菜单Run as Administrator实现。
) x6 p, u8 c+ S& k& w然后会出现UAC,Allow即可~
! d8 _, ]! S$ R4 U/ a( t由于UAC权限具有继承性,即一个具有Administrative权限的Process启动的Process默认是具有Administrative权限的(除非显式的禁止继承)~- p5 m4 J, T5 f. l4 a9 o. ^+ b: G
因此可以通过启动一个有Administrative的Cmd或者Powershell的Shell来让脚本具有Administrative权限~
. Z4 f# C: A* s  C) O( P1 Z0 E# p1 F
; g9 b: _5 z# o5 N+ I该方法仅在Win7下测试通过~WinXP下不通过~$ A# n6 I& Y7 N2 D
似乎原因是由于WinXP的WMI Class不支持Enable和Disable方法造成的~具体解决方案未知。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT-7, 2026-4-21 03:50 , Processed in 0.105977 second(s), 9 queries , Gzip On, APC On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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