USB的出现除了给大家带来方便外,对企业来说也带来很大的数据安全隐患!用户可以很方便的将数据拷贝到U盘上。可以说USB对企业来说弊大于利。
有很多种方法可以将USB禁用,比如用万能胶水将USB口封住,或者对USB口实施暴力破坏!这就苦了你的PC了。
最好的方法是在BIOS中将USB设备禁用,一了百了。但是也有很多人已经掌握了放电法清除BIOS设置。又使得你的idea被破坏!
那就再来点狠的,将机箱用锁给锁住了。这下可以放心睡大觉了。。。哈哈! PC的小电池没电了,或过期不能用了,又使得你的PC暴露在罪恶的U盘下了。
防不胜防啊!!!
怎么办,怎么办?
我们就来点很暴力的。。。吧!
实时监控U盘的使用,只要有人插入U盘,立刻发邮件给管理员。。。
罚没U盘,再加上行政处分,扣奖金这一招在任何时候都管用。 实时监控软件可以在internet上找到。
没有?!那我们只有定期扫描USB了。。。下面的脚本是用来检查USB有没有在BIOS中被禁用也即检查与USB有关的PnP设备是否存在?
'*********************************************************************************'
'Name: CheckUSBDeviceByBIOS'
'Purpose: To check whether the USB device is disabled by BIOS
'Output: 1 : USB is Enabled in BIOS
' 0: USB is disabled in BIOS
-1; No right to access or other unexpected reason
'********************************************************************************'
Function CheckUSBDeviceByBIOS(ByVal strComputer)
On Error Resume Next
HasUSB=0
Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")
Set colDevices = objWMIService.ExecQuery _
("Select * From Win32_USBControllerDevice")
if err=0 then
wscript.echo "stating check USB ..."
For Each objDevice in colDevices
strDeviceName = objDevice.Dependent
strQuotes = Chr(34)
strDeviceName = Replace(strDeviceName, strQuotes, "")
arrDeviceNames = Split(strDeviceName, "=")
strDeviceName = arrDeviceNames(1)
Set colUSBDevices = objWMIService.ExecQuery _
("Select * From Win32_PnPEntity Where DeviceID = '" & strDeviceName & "'")
For Each objUSBDevice in colUSBDevices
wscript.echo ucase(objUSBDevice.Description)
if trim(objUSBDevice.Description)=trim("USB Root Hub") then
HasUSB=1 'Enabled'
Exit for
end if
Next
Next
else
HasUSB=-1 'No right or not able to connect remotely
end if
CheckUSBDeviceByBIOS=HasUSB
Set objWMIService = Nothing
Set colDevices = Nothing
End function
下面的脚本是用来检查注册表中有关USB有关信息的。注册表中如果有HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/USBSTOR,说明此人已经用过USB盘了。 USBStor的出现是在第一次使用U盘后自动建立的,它的键值为3。如果将它禁用,就将此值改为4即可!
如果没有此键值,真是万幸!这台PC上还没有用过U盘,没有键值该如何禁呢?那就将USBHub或USBHUB20的键值改为4,也就将USB给禁用了。
本脚本是用于检查这些键值的。当你有成百上千的PC或服务器时可以大显身手了。
'***********************Start of Sub and Functions*************************
'* Function USBCheckByReg
'* Purpose: Check whether the USB is disabled or Enabled in registry.
'* Input: strComputer Computer name.
'* Output: Enabled: 1
'* Disabled or Not accessable: 0
'*
'********************************************************************
Private Function USBCheckByReg(ByVal strComputer)
ON ERROR RESUME NEXT
USBregStr ="Enabled"
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!//" &_
strComputer & "/root/default:StdRegProv")
if err=0 then
strKeyPath = "SYSTEM/CurrentControlSet/Services/USBSTOR"
oReg.GetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,"Start",strValue
strKeyPath = "SYSTEM/CurrentControlSet/Services/USBHUB"
oReg.GetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,"Start",strValue1
strKeyPath = "SYSTEM/CurrentControlSet/Services/USBHUB20"
oReg.GetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,"Start",strValue2
if strvalue="4" or strvalue1="4" or strValue2="4" then
USBCheckByReg=0
exit function
else
USBCheckByReg=1
end if
else 'Not accessable
USBCheckByReg=0
end if
End Function