'程序名称:实现网卡适配器禁用/启用
'静默运行参数: /y启用,/n禁用,无参数或参数错误,弹出对话框
'程序代码:张富贵儿
'运行:在叉屁、未死的、瘟七、瘟八、瘟十、瘟妖妖等系统上,双击即可运行
'编辑:系统自带的记事本就可以了。老张头儿用的是自己汉化的VBSEdit,这个更方便
'编码:ANSI或Unicode都可以,不要用UTF-8,因为操作系统不支持UTF-8的VBS脚本
'网卡:最多支持10个网卡
'保护:代码可以加密或编译成exe文件,有需要找老张头儿
'其他:这里对所有网卡进行操作。如果针对某个特定网卡操作,请自行修改代码
Dim NetAdapterNameArray(10) '网络适配器名称,也就是本地连接、以太网啥
Dim NetAdapterStatusArray(10)'网卡当前禁用/启用状态。这里没用到,预留。
Dim NetAdapterLinkArray(10) '网卡是否连线,这里没用到,预留。
If WScript.Arguments.Length = 0 Then '没有参数运行
CCCP=MsgBox(“报告首长,下面将要启用或禁用所有网卡。” & Chr(10)& Chr(10) & _
“是(Y)-----启用”& Chr(10) & _
“否(Y)-----禁用”& Chr(10) & _
“取消------啥也不干” & Chr(10)& Chr(10) & _
“启动时,如果使用 /y 或 /n 参数,可以静默执行 启用/禁用 网卡。” ,64+3,“网卡禁用”)
Select Case CCCP
Case 6
OhYeah=chr(76 Xor 41)+chr(68 Xor 42)+chr(82 Xor 51)+chr(70 Xor 36)+chr(45 Xor 65)+chr(34 Xor 71)+chr(44 Xor 72)
Case 7
OhYeah=chr(59 Xor 95)+chr(34 Xor 75)+chr(75 Xor 56)+chr(243 Xor 146)+chr(20 Xor 118)+chr(3 Xor 111)+chr(90 Xor 63)+chr(59 Xor 95)
Case Else
MsgBox “韶华不为少年留,我们都是养生堂毕业的微信老娘们儿。”,64,“取消”
WScript.Quit '退出
End Select
Call EnableNetWork(OhYeah) '禁用/启用网卡
WScript.Quit '退出
End If
USA=LCase(WScript.Arguments(0)) '带参数运行,转换为小写
If InStr(USA,"/n")>0 Then
OhYeah=chr(53 Xor 81)+chr(79 Xor 38)+chr(226 Xor 145)+chr(56 Xor 89)+chr(90 Xor 56)+chr(52 Xor 88)+chr(49 Xor 84)+chr(13 Xor 105)
Call EnableNetWork(OhYeah) '禁用/启用网卡
WScript.Quit '退出
End if
If InStr(USA,"/y")>0 Then '/y参数
OhYeah=chr(87 Xor 50)+chr(68 Xor 42)+chr(48 Xor 81)+chr(90 Xor 56)+chr(228 Xor 136)+chr(30 Xor 123)+chr(20 Xor 112)
Call EnableNetWork(OhYeah) '禁用/启用网卡
WScript.Quit '退出
End If
TipTop= "小老弟儿,参数不正确。演砸了,赶紧按照下面的形式修改,别让老娘们儿看见。正确参数是这样的:" & Chr(10) & Chr(10) & _
"网卡适配器启用.vbs /y" & Chr(10) & Chr(10) & _
"或者这样:" & Chr(10) & Chr(10) & _
"网卡适配器禁用.vbs /n" & Chr(10) & Chr(10) & _
"其他参数不支持。这个VBS还可以加密,还可编译成exe,不会就找老张头儿帮你。"
MsgBox TipTop,64,"参数不正确"
WScript.Quit '退出
Sub EnableNetWork(OhYeah)
'禁用/启用网卡
Call NetWorkInfo_Array(NetAdapterCount)'获取本地连接名称和网卡数量
For i=0 To NetAdapterCount -1
RunExeName=chr(62 Xor 93)+chr(30 Xor 115)+chr(77 Xor 41)+chr(99 Xor 77)+chr(37 Xor 64)+chr(56 Xor 64)+chr(69 Xor 32)
P1=chr(99 Xor 67)+chr(78 Xor 97)+chr(85 Xor 54)+chr(69 Xor 101)+chr(226 Xor 140)+chr(87 Xor 50)+chr(226 Xor 150)+chr(69 Xor 54)+chr(62 Xor 86)+chr(85 Xor 117)+chr(91 Xor 50)+chr(0 Xor 110)+chr(53 Xor 65)+chr(86 Xor 51)+chr(49 Xor 67)+chr(236 Xor 138)+chr(37 Xor 68)+chr(91 Xor 56)+chr(240 Xor 149)+chr(100 Xor 68)+chr(45 Xor 94)+chr(13 Xor 104)+chr(20 Xor 96)+chr(28 Xor 60)+chr(21 Xor 124)+chr(88 Xor 54)+chr(73 Xor 61)+chr(228 Xor 129)+chr(75 Xor 57)+chr(85 Xor 51)+chr(11 Xor 106)+chr(90 Xor 57)+chr(22 Xor 115)+chr(11 Xor 43)
P2=chr(25 Xor 57)+chr(94 Xor 63)+chr(5 Xor 97)+chr(232 Xor 133)+chr(66 Xor 43)+chr(46 Xor 64)+chr(119 Xor 74)
P3=chr(50 Xor 97)+chr(23 Xor 127)+chr(27 Xor 126)+chr(119 Xor 27)+chr(39 Xor 75)+chr(17 Xor 63)+chr(100 Xor 37)+chr(62 Xor 78)+chr(24 Xor 104)+chr(32 Xor 76)+chr(22 Xor 127)+chr(89 Xor 58)+chr(1 Xor 96)+chr(27 Xor 111)+chr(75 Xor 34)+chr(66 Xor 45)+chr(18 Xor 124)
P4=chr(45 Xor 95)+chr(28 Xor 105)+chr(9 Xor 103)+chr(20 Xor 117)+chr(30 Xor 109)
RunParameter=P1 & Chr(34) & NetAdapterNameArray(i) & Chr(34) & P2 & OhYeah
CreateObject(P3).ShellExecute RunExeName,RunParameter, , P4, 0 '以管理员身份运行
Next
End Sub
Sub NetWorkInfo_Array(NetAdapterCount)
'网卡状态为全局数组变量,NetAdapterCount返回网卡数量
'NetAdapterNameArray 网络适配器名称,也就是本地连接、以太网。
'NetAdapterStatusArray 网卡状态,也就是网卡是否禁用,本程序没用到
'NetAdapterLinkArray 网络适配器连接状态,也就是网卡是否连接到网络,本程序没用到
Set WMI = GetObject("Winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
For Each TempObj In WMI.ExecQuery("Select * from Win32_NetworkAdapter Where PhysicalAdapter = 'True'")
With TempObj
If TypeName(.Speed) = "Null" Then
NetCardSpeed = "已禁用"
Else
NetCardSpeed = "已启用"
End If
NetAdapterStatusArray(i) =NetCardSpeed '网卡状态。也就是网卡是否禁用
PNPDeviceIDString = .PNPDeviceID
NetAdapter = GetNetAdapterName(PNPDeviceIDString) '根据PNPDeviceID内容,从注册表中查找本地连接
NetAdapterNameArray(i)=NetAdapter '网络适配器名称,也就是本地连接、以太网。
PP=UCase(.NetEnabled)
PP=Replace(PP, "FALSE", "断开")
PP=Replace(PP, "TRUE", "连接")
NetAdapterLinkArray(i)= pp '网络适配器连接状态,也就是网卡是否连接到网络
i=i+1
End With
Next
NetAdapterCount=i
End Sub
Function GetNetAdapterName(PNPDeviceIDString)
'从注册表中读取网卡适配器名称,也就控制面板\网络和 Internet\网络连接中的本地连接
On Error Resume Next
Err.Clear
HKEY_CURRENT_USER = &H80000001
HKEY_LOCAL_MACHINE= &H80000002
REGKeyPath = “SYSTEM\ControlSet001\Control\Network{4D36E972-E325-11CE-BFC1-08002BE10318}”
kclsn=“”
Set GetReg=GetObject(“winmgmts:{impersonationLevel=impersonate}!\.\root\default:StdRegProv”)
Set lsn=CreateObject(“WScript.Shell”)
GetReg.EnumKey HKEY_LOCAL_MACHINE, REGKeyPath, arrSubKeys
For Each subkey In arrSubKeys
IDKeyName=“HKEY_LOCAL_MACHINE” & REGKeyPath & “” & subkey & “\Connection\PnpInstanceID”
GetIDKeyName= lsn.RegRead(IDKeyName) '从注册表中读取
If Err.number <>0 Then '如果出现错误
GetIDKeyName=“”
Err.Clear '清除错误
End If
If GetIDKeyName=PNPDeviceIDString Then '与硬件读取的网卡ID一致,
IDKeyName=“HKEY_LOCAL_MACHINE” & REGKeyPath & “” & subkey & “\Connection\Name”
cc=lsn.RegRead(IDKeyName)
GeAdapterName= lsn.RegRead(IDKeyName) '从注册表中读取网卡名字
GetNetAdapterName=GeAdapterName
End If
Next
End Function