埃德蒙顿华人社区-Edmonton China

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

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

[复制链接]
鲜花(3) 鸡蛋(1)
发表于 2011-3-4 21:58 | 显示全部楼层 |阅读模式
老杨团队,追求完美;客户至上,服务到位!
方法一:NetSH大法~+ F2 n% a8 T6 y; r
采用下列Netsh脚本# y6 _' X) b# v2 ~
interface
. h- l7 ?$ A+ ]& ?2 jset interface name="Local Area Connection" admin=ENABLED/DISABLED+ u0 Y" l  A, R1 }
& A& k; V2 ~' K( x, H( ?/ a/ N
方法二:Powershell+WMI大法
! O# i) i( ]6 q+ W$adapter = get-wmiobject Win32_NetworkAdapter -filter "NetConnectionID='Local Area Connection'"2 @3 N2 R9 [( I; O% q1 q' t
$adapter.Disable()
. v6 r& W8 z% P, \5 n$ g, Q/ q8 S# q0 d$ _* q; r
同理可以VBS+WMI大法~, E$ t6 \$ I5 I! |9 j' K) I* ~
这个就不说了~没啥意义了~
. I( r) S" c! ]+ H$ H; K2 c9 x
2 P$ k, p1 ?/ q0 h# ~9 T& W其中有一个非常重要的问题就是权限控制问题!
* m. p7 g& u: p, [4 A4 o  f# JWindows 7的UAC很严格,不能像WinXP里那样随意修改系统设置而不通知用户。
8 A* p# ?/ A* K$ f  i' h如果不赋予脚本执行环境以Administrative权限的话,脚本会执行失败,WMI返回码为05,Netsh报错:“An interface with this name is not registered with the router.”
; V9 [* s% C1 G, o3 y因此在启动Netsh或者Powershell时需要指定 Administrative权限,可通过右键菜单Run as Administrator实现。/ k+ v! p% @7 E2 D- F
然后会出现UAC,Allow即可~" S! y5 a: G& o- v) _
由于UAC权限具有继承性,即一个具有Administrative权限的Process启动的Process默认是具有Administrative权限的(除非显式的禁止继承)~/ {$ }! b8 q/ h3 |, U, O
因此可以通过启动一个有Administrative的Cmd或者Powershell的Shell来让脚本具有Administrative权限~/ E, F$ S% H* x' I7 A) y

' q9 |( I4 a' l9 @1 e该方法仅在Win7下测试通过~WinXP下不通过~3 D8 r# }3 O. R5 b
似乎原因是由于WinXP的WMI Class不支持Enable和Disable方法造成的~具体解决方案未知。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT-7, 2026-7-13 15:09 , Processed in 0.108076 second(s), 9 queries , Gzip On, APC On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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