埃德蒙顿华人社区-Edmonton China

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

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

[复制链接]
鲜花(3) 鸡蛋(1)
发表于 2011-3-4 21:58 | 显示全部楼层 |阅读模式
老杨团队,追求完美;客户至上,服务到位!
方法一:NetSH大法~# U- I6 L& W: D* H+ ]
采用下列Netsh脚本8 q3 l3 j' G6 T7 P* ?6 N9 C: Z, S
interface: q( X# I: v7 _/ f- U, p) z6 J4 V
set interface name="Local Area Connection" admin=ENABLED/DISABLED) ?! Q, z3 k# ^! U

6 {4 y  F, R% i0 k7 A7 o方法二:Powershell+WMI大法9 H! A, k0 y" t$ C4 m3 D/ w
$adapter = get-wmiobject Win32_NetworkAdapter -filter "NetConnectionID='Local Area Connection'"$ O/ Y* Q' t1 [1 Z. R
$adapter.Disable()# q. P( K3 i  z: i9 t- y6 S( H
5 `& V9 A6 ~  i9 K  ]
同理可以VBS+WMI大法~
, j9 y6 B2 S3 y6 ]0 }: [这个就不说了~没啥意义了~' {3 ^1 w# O5 r) q# f

6 |' n: x/ i+ n6 O, ]; i其中有一个非常重要的问题就是权限控制问题!
% p3 P) L0 f5 h. f9 g/ ~% M: ]7 e# }. q" u' qWindows 7的UAC很严格,不能像WinXP里那样随意修改系统设置而不通知用户。: L+ Z6 N& _8 z3 g
如果不赋予脚本执行环境以Administrative权限的话,脚本会执行失败,WMI返回码为05,Netsh报错:“An interface with this name is not registered with the router.”
) ~7 Y( F$ f9 `( |- G因此在启动Netsh或者Powershell时需要指定 Administrative权限,可通过右键菜单Run as Administrator实现。
6 Z+ h  l7 J) }( N3 M, u5 |1 R然后会出现UAC,Allow即可~
. y# y9 e2 ?9 M1 w" U7 L/ P由于UAC权限具有继承性,即一个具有Administrative权限的Process启动的Process默认是具有Administrative权限的(除非显式的禁止继承)~1 P/ s4 z* N; a9 i
因此可以通过启动一个有Administrative的Cmd或者Powershell的Shell来让脚本具有Administrative权限~
! b% d/ G! e% K+ c
' l% L/ U- j: z6 Z& }" M该方法仅在Win7下测试通过~WinXP下不通过~7 n  i4 \2 u7 t9 G4 V$ e. N6 @' w
似乎原因是由于WinXP的WMI Class不支持Enable和Disable方法造成的~具体解决方案未知。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT-7, 2026-8-6 13:38 , Processed in 0.091343 second(s), 9 queries , Gzip On, APC On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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