如何使用VBS禁用或启动USB存储设备

这篇文章主要介绍“如何使用VBS禁用或启动USB存储设备”,在日常操作中,相信很多人在如何使用VBS禁用或启动USB存储设备问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用VBS禁用或启动USB存储设备”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

USB存储设备控制 By Yu2n

如何使用VBS禁用或启动USB存储设备

XP系统测试通过,需要管理员权限。

在下次插拔设备时生效,无须重启。

'USB_Stock_Block.vbs
'===========================================================================================
CheckOS'检查操作系统版本
CheckMeState'检查程序运行状态
main'执行主程序

'===========================================================================================
'主函数
Submain()
Dimwso,windir,EnableUSB
Setwso=CreateObject("WScript.Shell")
SetobjNetwork=CreateObject("wscript.network")
strComputer=objNetwork.ComputerName

Ifwso.Popup(VbCrLf&"禁用USB存储设备,请按“确定”"&VbCrLf&_
VbCrLf&"启用USB存储设备,请按“取消”(6秒后自动取消)"_
,6,"USB存储设备控制-主菜单",48+4096+1)=1Then
EnableUSB=0
Else
EnableUSB=1
EndIf

IfExist("C:\windows\system32\cmd.exe")Thenwindir="windows"
IfExist("C:\winnt\system32\cmd.exe")Thenwindir="winnt"

IfEnableUSB=1Then
wso.RegWrite"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies\WriteProtect","1","REG_DWORD"'禁止写入
wso.RegWrite"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR\Start","3","REG_DWORD"'启用USBStor

Move"C:\"&windir&"\inf\usbstor.pnf_","C:\"&windir&"\inf\usbstor.pnf"
Move"C:\"&windir&"\inf\usbstor.inf_","C:\"&windir&"\inf\usbstor.inf"
Move"C:\"&windir&"\system32\drivers\usbstor.sys_","C:\"&windir&"\system32\drivers\usbstor.sys"

If(NotExist("C:\"&windir&"\inf\usbstor.pnf_"))And(regKeyRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR\Start")=3)Then
wso.PopupVbCrLf&"启用USB存储设备成功。    ",5,"USB存储设备控制-操作完成",64+4096
Else
wso.PopupVbCrLf&"启用USB存储设备失败。    ",5,"USB存储设备控制-操作完成",16+4096
EndIf
Else
wso.RegWrite"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies\WriteProtect","1","REG_DWORD"'禁止写入
wso.RegWrite"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR\Start","4","REG_DWORD"'禁用用USBStor

Move"C:\"&windir&"\inf\usbstor.pnf","C:\"&windir&"\inf\usbstor.pnf_"
Move"C:\"&windir&"\inf\usbstor.inf","C:\"&windir&"\inf\usbstor.inf_"
Move"C:\"&windir&"\system32\drivers\usbstor.sys","C:\"&windir&"\system32\drivers\usbstor.sys_"

If(NotExist("C:\"&windir&"\inf\usbstor.pnf"))And(regKeyRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR\Start")=4)Then
wso.PopupVbCrLf&"禁用USB存储设备成功。    ",5,"USB存储设备控制-操作完成",64+4096
Else
wso.PopupVbCrLf&"禁用USB存储设备失败。    ",5,"USB存储设备控制-操作完成",16+4096
EndIf
Endif

Setwso=Nothing
EndSub

'===========================================================================================
'小函数
FunctionExist(strPath)
'OnErrorResumeNext
Setfso=CreateObject("Scripting.FileSystemObject")
If((fso.FolderExists(strPath))Or(fso.FileExists(strPath)))then
Exist=True
Else
Exist=False
Endif
Setfso=Nothing
EndFunction
SubMove(strSource,strDestination)
OnErrorResumeNext
IfExist(strSource)Then
Setfso=CreateObject("Scripting.FileSystemObject")
If(fso.FileExists(strSource))Thenfso.MoveFilestrSource,strDestination
If(fso.FolderExists(strSource))Thenfso.MoveFolderstrSource,strDestination
Setfso=Nothing
Else
WarningInfo"警告","找不到"&strSource&"文件!",2
EndIf
IfNotExist(strDestination)ThenWarningInfo"警告","移动失败,无法移动"&VbCrLf&strSource&"至"&VbCrLf&strDestination,2
EndSub
FunctionregKeyRead(strKey)
Setwso=CreateObject("WScript.Shell")
regKeyRead=wso.RegRead(strKey)'strKey="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\DocTip"
Setwso=Nothing
EndFunction

'===========================================================================================
'是否重复运行
SubCheckMeState()
IfIsRun(WScript.ScriptFullName)Then
Setwso=CreateObject("WScript.Shell")
Ifwso.Popup("程序已运行,请不要重复运行本程序!"&VbCrLf&VbCrLf&_
"退出已运行程序,请按“确定”,否则请按“取消”。(3秒后自动取消)"_
,3,"警告",1)=1Then
KillMeAllRun
EndIf
Setwso=Nothing
'WarningInfo"警告:","程序已运行,请不要重复运行本程序!!",1
WScript.Quit
EndIf
EndSub
'检测是否重复运行
FunctionIsRun(appPath)
IsRun=False
ForEachpsinGetObject("winmgmts:\\.\root\cimv2:win32_process").instances_
'IFLcase(ps.name)="mshta.exe"Then
IFLcase(ps.name)="wscript.exe"Then
IFinstr(Lcase(ps.CommandLine),Lcase(appPath))Theni=i+1
EndIF
next
ifi>1then
IsRun=True
endif
EndFunction
'终止自身
FunctionKillMeAllRun()
DimMeAllPid
Setpid=Getobject("winmgmts:\\.").InstancesOf("Win32_Process")
ForEachpsInpid
'ifLCase(ps.name)=LCase("mshta.exe")then
IFLcase(ps.name)="wscript.exe"OrLcase(ps.name)="cscript.exe"Then
IFinstr(Lcase(ps.CommandLine),Lcase(WScript.ScriptFullName))ThenMeAllPid=MeAllPid&"/PID"&ps.ProcessID&""
endif
next
Setwso=CreateObject("WScript.Shell")
wso.Run"TASKKILL"&MeAllPid&"/F/T",0,False
Setwso=Nothing
Setpid=Nothing
EndFunction

'===========================================================================================
'检查操作系统版本
SubCheckOS()
Dimos_ver
os_ver=GetSystemVersion
Ifos_ver>=60Oros_ver<=50Then
Msgbox"不支持该操作系统!    ",48+4096,"警告"
WScript.Quit'退出程序
EndIf
EndSub
'取得操作系统版本
FunctionGetSystemVersion()
Dimos_obj,os_version,os_version_arr
Setos_obj=GetObject("winmgmts:").InstancesOf("Win32_OperatingSystem")
ForEachos_infoInos_obj
os_version=os_info.Version
Ifos_version<>""ThenExitFor
Next
Setos_obj=Nothing
os_version_arr=Split(os_info.Version,".")
GetSystemVersion=Cint(os_version_arr(0)&os_version_arr(1))
EndFunction

到此,关于“如何使用VBS禁用或启动USB存储设备”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注恰卡编程网网站,小编会继续努力为大家带来更多实用的文章!

发布于 2021-07-29 22:00:33
收藏
分享
海报
0 条评论
185
上一篇:Android中怎么通过自定义控件实现望远镜效果 下一篇:怎么用html5 canvas实现漫天飞雪效果
目录

    推荐阅读

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码