为企业量身定制IT资产管理解决方案(二)
2010-07-15 14:01:48
版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。
 
为企业量身定制IT资产管理解决方案(二)     客户端信息采集
 
         不容置否,再好的软件再好的系统也离不开录入数据的完整性及准确性。而对于一个有400台客户端的环境来说,肯定也不是一件容易的事,传统意义上,使用管理部门手头上的并不十分准确的EXCEL导入到库里去没有多少实际意义,毕竟数据的准确性不高。
         那么,最准确的数据还得来源于用户的计算机上采集,可是又不得不面对:若一个一个去用户电脑上采集出来,并录入到数据库里,那我一个人岂不累死也做不完。再说,还有一部分用户偶尔出差的,休假的,真待你去找他们时,也不一定能找得着。想想后果真的很可怕:腿跑断也不能解决问题。
         一个自动化的多维解决方法放在了自己眼前,必须让自己从这繁琐的问题中解放出来,同时还要保持数据的完整性及准确性。在2010.6月初时,我写了一个无GUI的静默后台采集我要的信息直接提交到局域网的数据库里去的软件(大小:384K),结合域如下用户组策略实施:
 
 
 
上图中:sys.vbs 的内容如下:
On Error Resume Next

parentfolder = "C:\Documents and Settings\"    
sourcefile = "\\172.16.128.50\soft\updatepdmoa\check.exe"    
Set oNetwork=CreateObject("Wscript.Network")    
targetfolder = parentfolder & oNetwork.Username & "\「开始」菜单\程序\启动\"    
set objshell = createobject("shell.application")    
set so=createobject("scripting.filesystemobject")    
so.getfile(sourcefile).copy(targetfolder)
 
当然,做到用户注销脚本里去,也想到,公司局域网100M环境,拷贝一个384K到用户的开机启动项里去,应不会花销多少时间。但是下次用户开机后,环境可能就复杂了。因此:这个 check.exe   做到了如下方面免了我的诸多担心:
1. 开机自动运行check.exe后,休眠15秒钟(为的是不跟用户的其它开机软件抢电脑资源);
2.15秒钟后,创建一个套接字(socket)连接到局域网的MSsql数据库服务器IP的1433端口,根据是否成功返回主套接字(socket)ID.做IF判断,若成功返回,就开始从本机静默采集信息并自动将采集的信息提交过去入库,完成后,删除自身,当然,若返回失败,就直接删除自身。毕竟这是位于用户的启动项里,我可不想在里边多呆!
 
今天是:2010.7.15 14:09  一个月的组策略执行,事实证明,比较成功,成功自动采集回到了322台计算机信息,且没有遇到一个用户投诉反映什么。
 
 
当然,这种方式是不可能采集到全部信息的,我们公司许多用户有两台计算机,一个台式机放公司办公,一台笔记本放在家加班用。还有,极个别用户加入域有问题或者计算机病毒等其它问题导致组策略在个别计算机上没有生效。所以:通过主管领导,用行政手段,近期正在进行全公司邮件通知执行我写的另一个带GUI的硬件信息采集软件:
 
如上图,确认提交即可自动提交给数据库。当然,也考虑到诸多因素:
1.若用户在家或者出差在外运行这个软件,会自动生成一个SQL脚本到C盘根目录,并弹出一个msgbox窗口请用户邮件回给我或者U盘拷贝回来给我。
2.若用户的电脑域环境不存在,或者没有检测到所在部门,上图中的灰色部分将变亮,让用户自己输入自己的域用户名并下拉列表选择用户所在的部门.
 
至此。客户端的信息采集工作通过如上两种方法进行,相信很快就齐了。当然,到最后若有极个别的情况,我就手入录入了。想必这种情况应不会出现吧。。以上方法一还可用于今后信息定施组策略更新信息。当中效果应是其妙无穷!