埃德蒙顿华人社区-Edmonton China

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

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

[复制链接]
鲜花(3) 鸡蛋(1)
发表于 2011-3-4 21:58 | 显示全部楼层 |阅读模式
老杨团队,追求完美;客户至上,服务到位!
方法一:NetSH大法~2 o; l- z, ]9 x" P% \
采用下列Netsh脚本; e2 u0 x, X* |" S. s
interface
& n& K5 Q/ U) z4 Fset interface name="Local Area Connection" admin=ENABLED/DISABLED+ o8 q) D3 L  j$ I4 C
6 n7 Z* z4 k0 B: g+ {0 ?, \
方法二:Powershell+WMI大法
( Z2 x& n1 Q* e( u# w9 i% s( G7 X$adapter = get-wmiobject Win32_NetworkAdapter -filter "NetConnectionID='Local Area Connection'"9 S7 e/ q  H* J2 I; O% r8 f' ?
$adapter.Disable()% w4 o6 _) w- t, i  F$ ^

! k+ _9 N; \( X; z: Q/ J$ e同理可以VBS+WMI大法~4 f, \4 q+ U: m+ G% l2 a- [
这个就不说了~没啥意义了~
4 ]4 i6 Y5 y: U, W$ ?# {2 W* n
) ^' K# a3 [$ {$ S0 n7 x其中有一个非常重要的问题就是权限控制问题!
  F# [6 Y7 z' B9 m8 ?; D. Z0 X- WWindows 7的UAC很严格,不能像WinXP里那样随意修改系统设置而不通知用户。& M! F6 W- a7 b! E+ I
如果不赋予脚本执行环境以Administrative权限的话,脚本会执行失败,WMI返回码为05,Netsh报错:“An interface with this name is not registered with the router.”3 t" `: J( X' b$ V
因此在启动Netsh或者Powershell时需要指定 Administrative权限,可通过右键菜单Run as Administrator实现。& j+ B% C) z/ L
然后会出现UAC,Allow即可~
3 h2 V, [$ |% h' R; R* ~, T% E由于UAC权限具有继承性,即一个具有Administrative权限的Process启动的Process默认是具有Administrative权限的(除非显式的禁止继承)~
& ^* w, m- `6 s9 j, @' s& [3 H因此可以通过启动一个有Administrative的Cmd或者Powershell的Shell来让脚本具有Administrative权限~7 \/ K1 |0 h4 y* T& d/ N
' A6 V$ B: i0 @
该方法仅在Win7下测试通过~WinXP下不通过~  m3 _5 S# ]6 g3 j* W
似乎原因是由于WinXP的WMI Class不支持Enable和Disable方法造成的~具体解决方案未知。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT-7, 2026-5-23 23:37 , Processed in 0.215412 second(s), 9 queries , Gzip On, APC On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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