| |
| |
| CheckOS |
| CheckMeState |
| main |
| |
| |
| |
| Sub main() |
| Dim wso, windir, EnableUSB |
| Set wso = CreateObject("WScript.Shell") |
| Set objNetwork = CreateObject("wscript.network") |
| strComputer = objNetwork.ComputerName |
| |
| If wso.Popup(VbCrLf & "禁用 USB 存储设备,请按“确定”"& VbCrLf & _ |
| VbCrLf & "启用 USB 存储设备,请按“取消” (6秒后自动取消)" _ |
| , 6, "USB 存储设备控制 - 主菜单", 48+4096+1) = 1 Then |
| EnableUSB = 0 |
| Else |
| EnableUSB = 1 |
| End If |
| |
| If Exist( "C:\windows\system32\cmd.exe" ) Then windir = "windows" |
| If Exist( "C:\winnt\system32\cmd.exe" ) Then windir = "winnt" |
| |
| If EnableUSB = 1 Then |
| 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" |
| |
| 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 (Not Exist( "C:\" & windir & "\inf\usbstor.pnf_" )) And (regKeyRead( "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR\Start" ) = 3 ) Then |
| wso.Popup VbCrLf & "启用 USB 存储设备成功。 ", 5, "USB 存储设备控制 - 操作完成", 64+4096 |
| Else |
| wso.Popup VbCrLf & "启用 USB 存储设备失败。 ", 5, "USB 存储设备控制 - 操作完成", 16+4096 |
| End If |
| 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" |
| |
| 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 (Not Exist( "C:\" & windir & "\inf\usbstor.pnf" )) And (regKeyRead( "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR\Start" ) = 4 ) Then |
| wso.Popup VbCrLf & "禁用 USB 存储设备成功。 ", 5, "USB 存储设备控制 - 操作完成", 64+4096 |
| Else |
| wso.Popup VbCrLf & "禁用 USB 存储设备失败。 ", 5, "USB 存储设备控制 - 操作完成", 16+4096 |
| End If |
| End if |
| |
| Set wso = Nothing |
| End Sub |
| |
| |
| |
| Function Exist( strPath ) |
| |
| Set fso = CreateObject("Scripting.FileSystemObject") |
| If ((fso.FolderExists( strPath )) Or (fso.FileExists( strPath ))) then |
| Exist = True |
| Else |
| Exist = False |
| End if |
| Set fso = Nothing |
| End Function |
| Sub Move( strSource, strDestination ) |
| On Error Resume Next |
| If Exist( strSource ) Then |
| Set fso = CreateObject("Scripting.FileSystemObject") |
| If (fso.FileExists(strSource)) Then fso.MoveFile strSource, strDestination |
| If (fso.FolderExists(strSource)) Then fso.MoveFolder strSource, strDestination |
| Set fso = Nothing |
| Else |
| WarningInfo "警告", "找不到 " & strSource & " 文件!", 2 |
| End If |
| If Not Exist( strDestination ) Then WarningInfo "警告", "移动失败,无法移动 " & VbCrLf & strSource & " 至" & VbCrLf & strDestination, 2 |
| End Sub |
| Function regKeyRead( strKey ) |
| Set wso = CreateObject("WScript.Shell") |
| regKeyRead = wso.RegRead( strKey ) |
| Set wso = Nothing |
| End Function |
| |
| |
| |
| Sub CheckMeState() |
| If IsRun( WScript.ScriptFullName ) Then |
| Set wso = CreateObject("WScript.Shell") |
| If wso.Popup("程序已运行,请不要重复运行本程序!" & VbCrLf & VbCrLf & _ |
| "退出已运行程序,请按“确定”,否则请按“取消”。(3秒后自动取消)" _ |
| , 3, "警告", 1) = 1 Then |
| KillMeAllRun |
| End If |
| Set wso = Nothing |
| |
| WScript.Quit |
| End If |
| End Sub |
| |
| Function IsRun(appPath) |
| IsRun=False |
| For Each ps in GetObject("winmgmts:\\.\root\cimv2:win32_process").instances_ |
| |
| IF Lcase(ps.name)="wscript.exe" Then |
| IF instr(Lcase(ps.CommandLine),Lcase(appPath)) Then i=i+1 |
| End IF |
| next |
| if i>1 then |
| IsRun=True |
| end if |
| End Function |
| |
| Function KillMeAllRun() |
| Dim MeAllPid |
| Set pid = Getobject("winmgmts:\\.").InstancesOf("Win32_Process") |
| For Each ps In pid |
| |
| IF Lcase(ps.name)="wscript.exe" Or Lcase(ps.name)="cscript.exe"Then |
| IF instr(Lcase(ps.CommandLine),Lcase(WScript.ScriptFullName)) Then MeAllPid = MeAllPid & "/PID " & ps.ProcessID & " " |
| end if |
| next |
| Set wso = CreateObject("WScript.Shell") |
| wso.Run "TASKKILL " & MeAllPid & " /F /T", 0, False |
| Set wso = Nothing |
| Set pid = Nothing |
| End Function |
| |
| |
| |
| Sub CheckOS() |
| Dim os_ver |
| os_ver = GetSystemVersion |
| If os_ver >= 60 Or os_ver <= 50 Then |
| Msgbox "不支持该操作系统! ", 48+4096, "警告" |
| WScript.Quit |
| End If |
| End Sub |
| |
| Function GetSystemVersion() |
| Dim os_obj, os_version, os_version_arr |
| Set os_obj = GetObject("winmgmts:").InstancesOf("Win32_OperatingSystem") |
| For Each os_info In os_obj |
| os_version = os_info.Version |
| If os_version <> "" Then Exit For |
| Next |
| Set os_obj = Nothing |
| os_version_arr = Split( os_info.Version, ".") |
| GetSystemVersion = Cint( os_version_arr( 0 ) & os_version_arr( 1 ) ) |
| End FunctionCOPY |