埃德蒙顿华人社区-Edmonton China

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

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

[复制链接]
鲜花(3) 鸡蛋(1)
发表于 2011-3-4 21:58 | 显示全部楼层 |阅读模式
老杨团队,追求完美;客户至上,服务到位!
方法一:NetSH大法~
% o0 N, L6 U6 U3 F; R6 S1 u2 E! j  [采用下列Netsh脚本2 m# \( s2 Q" A+ x; N
interface: `. p. O& o  L  m$ \9 b
set interface name="Local Area Connection" admin=ENABLED/DISABLED
7 L; z) |$ ], j: Z2 Z/ G9 [2 h5 g1 E8 ?) t5 |$ O( M, c8 X- V
方法二:Powershell+WMI大法2 W' _3 D+ t9 u) S& W$ H
$adapter = get-wmiobject Win32_NetworkAdapter -filter "NetConnectionID='Local Area Connection'"5 r; v5 \5 @  L* q7 l0 L8 o' Z  D
$adapter.Disable()
- p0 Q$ h0 C$ V7 }8 Y: u
5 ]% K' u0 W1 X" ]同理可以VBS+WMI大法~
* l+ E) M! h4 [这个就不说了~没啥意义了~
2 l* s# M3 I! p" f  N+ n
( ~" q/ A* d, F! r+ ?) L" _2 r其中有一个非常重要的问题就是权限控制问题!
$ f" j) s  K0 ?" cWindows 7的UAC很严格,不能像WinXP里那样随意修改系统设置而不通知用户。
( B8 |2 @  F3 S; @如果不赋予脚本执行环境以Administrative权限的话,脚本会执行失败,WMI返回码为05,Netsh报错:“An interface with this name is not registered with the router.”
3 r; g/ r3 t& Z* u* K因此在启动Netsh或者Powershell时需要指定 Administrative权限,可通过右键菜单Run as Administrator实现。3 v" F2 m6 M0 S7 \) S& Z1 r
然后会出现UAC,Allow即可~
$ b/ Y. [6 }/ W( H' o由于UAC权限具有继承性,即一个具有Administrative权限的Process启动的Process默认是具有Administrative权限的(除非显式的禁止继承)~
, X  C$ t( @) E8 M因此可以通过启动一个有Administrative的Cmd或者Powershell的Shell来让脚本具有Administrative权限~
0 F% D' b! N. p% z' g7 x3 n* v% L+ i/ G2 @
该方法仅在Win7下测试通过~WinXP下不通过~4 c0 c: {# x/ P* k# B4 s# Z. h
似乎原因是由于WinXP的WMI Class不支持Enable和Disable方法造成的~具体解决方案未知。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT-7, 2026-6-15 20:11 , Processed in 0.163121 second(s), 9 queries , Gzip On, APC On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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