首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vbs 禁用启用网卡

Vbs 禁用启用网卡

作者头像
力哥聊运维与云计算
发布2019-06-28 11:51:19
1.9K0
发布2019-06-28 11:51:19
举报

Vbs 禁用启用网卡

在实际工作中,经常碰到需要通过脚本启用禁用网卡的情况,在网上找了一个脚本,实际是通过模拟键盘操作来启用禁用,但对于多种系统和比较复杂的情况操作性不好。

还有一种思路,就是利用netsh命令实现,但是netsh命令必须得到网卡的名字,不同服务器,网卡的名字并不一样。

于是产生了一个思路,利用vbs得到网卡名字,然后调用netsh命令启用禁用网卡。

代码如下

call dis_en_nic()

Function dis_en_nic()

On Error Resume Next

dim objShell

Const wbemFlagReturnImmediately = &h10

Const wbemFlagForwardOnly = &h20

set fso=createobject("scripting.filesystemobject") 

Dim wshshell

Set wshshell=WScript.CreateObject("WScript.Shell")

arrComputers=Array(".")

For Each strComputer In arrComputers

   Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")

   'Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter where AdapterTypeId=0")

   '使用where AdapterTypeId=0 可以的得到所有的物理网卡,但是貌似禁用的网卡不能得到,需要进一步测试

   Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter ")

   For Each objItem In colItems

            'WScript.Echo "NetConnectionID: " & objItem.NetConnectionID

            a=objItem.NetConnectionID

            '启用网卡

            b="""c:\WINDOWS\system32\cmd.exe /c c:\WINDOWS\system32\netsh.exe interface set interface name="""+a+""" admin=ENABLED """

            '禁用网卡

            'b="""c:\WINDOWS\system32\cmd.exe /c c:\WINDOWS\system32\netsh.exe interface set interface name="""+a+""" admin=DISABLED """

            wshshell.run("%comspec% /c "+b)

    Next

Next

Set wshshell=nothing

End Function

说明:

1 环境变量 %comspec% 代表 Windows 命令外壳;这等效于调用 Cmd.exe(它当然会打开一个命令窗口)。那为什么不直接调用 Cmd.exe?是这样,假设您的计算机运行 Windows 98。在这些计算机上,通过运行 Command.com 来调用命令外壳,因为没有 Cmd.exe。使用 %comspec% 有助于确保无论该脚本是在什么版本的 Windows 上运行,都可以获得命令窗口。

2 此方法只适用server 2003 2008 xp不适用。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2011-12-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档