埃德蒙顿华人社区-Edmonton China

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

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

[复制链接]
鲜花(3) 鸡蛋(1)
发表于 2011-3-4 21:58 | 显示全部楼层 |阅读模式
老杨团队,追求完美;客户至上,服务到位!
方法一:NetSH大法~: h; Z" o1 T4 B  P  o
采用下列Netsh脚本
: h( o( q) S* o; ]! H" }( \interface; o3 A1 S0 Q$ R( U* t
set interface name="Local Area Connection" admin=ENABLED/DISABLED
6 S  X9 v7 |" e- r% D- t5 Y% X3 Y- _: B5 r( S8 x  H+ S
方法二:Powershell+WMI大法
% n- \1 C5 l5 ~* f$adapter = get-wmiobject Win32_NetworkAdapter -filter "NetConnectionID='Local Area Connection'"
% F; S5 f) L# H4 c. c$adapter.Disable()0 z/ m9 b+ U' w
4 }/ N4 T) a/ _  G
同理可以VBS+WMI大法~( z9 G# w# s4 R' W0 Q$ g
这个就不说了~没啥意义了~8 z; ?* F4 q, [$ \

2 g2 J8 g& d  [: i1 o) _其中有一个非常重要的问题就是权限控制问题!) d/ ~( H1 N" c8 J: X) A& D( E) y6 ^
Windows 7的UAC很严格,不能像WinXP里那样随意修改系统设置而不通知用户。
9 E4 T+ ~* ~0 d3 \如果不赋予脚本执行环境以Administrative权限的话,脚本会执行失败,WMI返回码为05,Netsh报错:“An interface with this name is not registered with the router.”
) e  X+ k" p4 j- \9 D7 C: f" `因此在启动Netsh或者Powershell时需要指定 Administrative权限,可通过右键菜单Run as Administrator实现。. x; \, j. Q3 A6 g* F
然后会出现UAC,Allow即可~
# C% z  Z, c8 `由于UAC权限具有继承性,即一个具有Administrative权限的Process启动的Process默认是具有Administrative权限的(除非显式的禁止继承)~# I5 a7 I; c. j! }, P( r8 c6 u9 v
因此可以通过启动一个有Administrative的Cmd或者Powershell的Shell来让脚本具有Administrative权限~
' A1 U) b8 ~/ P+ l$ g, z2 H& ]7 U/ f7 b
该方法仅在Win7下测试通过~WinXP下不通过~+ C( @) ?# |. r" Z
似乎原因是由于WinXP的WMI Class不支持Enable和Disable方法造成的~具体解决方案未知。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT-7, 2025-11-6 22:18 , Processed in 0.106757 second(s), 10 queries , Gzip On, APC On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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