这个是我2009年3月写的一个脚本,该脚本可以放在用户登录脚本上运行,即可以获取到公司所有USB的开关情况。
- /*
- *按照公司的安全策略,除特殊用户外所有用户的USB端口全部都是BIOS中*disable掉,最近突然想检查一下公司所有的电脑的USB是否有漏网之鱼,
- *可是公司几百台电脑一台一台查这需要的工作量也太大而且也不方便,所
- *以我就写了一个脚本来判断用户的USB端口是否有启用,如果启用则把电脑*名写入C盘和网络服务器上的某个共享中写入一个文本文件中,为了防止重*复把电脑名写入文件,若本地C盘有此文本文件存在,则不写入网络UNC文
- *件中。(当然您可以对脚本文件进行优化或更改,直在接本地电脑上运行
- *收集网络中所有开机电脑的USB状态),我把这个文件放入公司AD组策略的*用户启动脚本中达到收集信息的目的,不做不知道,一做吓一跳,原来公
- *司还有这么多漏网之鱼的存在,太吓人了;脚本内容如下:
- */
- '文件名:TestUSBFunction.vbs
- '作者:邓卫华 by 2009.3.4
- '更新历史:2009.3.4 v1 (初使版)
- '------
- '此脚本的目的是检测电脑是否有开通USB功能,如果有开通则把电脑名分别写入"\\\\fileserver\\图片存储区\abled.txt"和c:\abled.txt
- '为防止重复运行此脚本并重复写入此文件多余的项目,则通过判断本机的c:\abled.txt文件是否存在,如果文件存在则不把电脑名写入"\\\\fileserver\\图片存储区\abled.txt"
- '--------
- dim i
- i=0
- dim objusbhub
- dim colusb_hub
- dim colcomputername
- strComputer="."
- set objWMIService = Getobject("winmgmts:\\\\" & strComputer & "\\root\\cimv2")
- set colusb_hub = objWMIService.ExecQuery("Select * From win32_USBCONTROLLER")
- For Each objusbhub in colusb_hub
- If objusbhub.status = "OK" Then
- colComputername = objusbhub.systemname
- i=i+1
- End If
- next
- if i>0 then
- writecomputernametotext
- end if
- '函数WritecomputerNameToText():如果在本机C盘根下面找不到usbenabled.txt文件,则把本机的电脑名分别写入图片存储区和C盘目录下
- '如果本机的usbenabled文件存在则直接退出.本脚本中的文件路径请根据您自已的情况更改。多台电脑执行最好写一个任何人
- '都可写入的UNC路径
- Function WriteComputerNameToText()
- dim FileOutput
- dim outfile
- dim outfile_1
- outfile = "\\\\filesserver\\图片存储区\abled.txt"
- outfile_1 = "c:\abled.txt"
- set fo=createObject("scripting.fileSystemobject")
- const forWriting=2,forAppending=8
- if not fo.fileexists(outfile_1) then
- set FileOutput=fo.openTextFile(outFile,ForAppending,true)
- set fileoutput_1=fo.openTextFile(outfile_1,forWriting,true)
- fileoutput.writeLine(colComputername)
- fileoutput_1.writeLine(colcomputername)
- FileOutput.Close
- FileOutput_1.Close
- end if
- end function