6 z) D. {- [: K其中有一个非常重要的问题就是权限控制问题!3 o f L- B1 ?' K* m. V& h! [
Windows 7的UAC很严格,不能像WinXP里那样随意修改系统设置而不通知用户。 4 a# w9 E' h1 M9 e如果不赋予脚本执行环境以Administrative权限的话,脚本会执行失败,WMI返回码为05,Netsh报错:“An interface with this name is not registered with the router.” @$ w4 m! N4 ~* K) u/ ~因此在启动Netsh或者Powershell时需要指定 Administrative权限,可通过右键菜单Run as Administrator实现。 * f5 N7 C: P: V) n. E9 k* P) T. p然后会出现UAC,Allow即可~ W. k! j: L1 ^( C! u/ L由于UAC权限具有继承性,即一个具有Administrative权限的Process启动的Process默认是具有Administrative权限的(除非显式的禁止继承)~ % Q( w5 C0 w( V因此可以通过启动一个有Administrative的Cmd或者Powershell的Shell来让脚本具有Administrative权限~ 4 w; u5 a" S0 k' k( q5 R4 ]' s& P3 e8 E& A, k4 s
该方法仅在Win7下测试通过~WinXP下不通过~ 3 N" n' ?. l: d8 Q/ L/ Z3 ]似乎原因是由于WinXP的WMI Class不支持Enable和Disable方法造成的~具体解决方案未知。