为企业量身定制IT资产管理解决方案

来源:百度文库 编辑:神马文学网 时间:2024/04/29 15:24:35
为企业量身定制IT资产管理解决方案(一)
2010-07-15 12:56:03
标签:IT资产管理量身定制   [推送到技术圈]
版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。
为企业量身定制IT资产管理解决方案(一)    总体框架设计
公司服务器,工作站,笔记本,台式机将近400台,且公司下属各部门都有可向部门秘书借的临时流通的公用笔记本电脑。甚至有一段时间内,还集体采购一批内存条,现已散落天涯. 再加上公司人来人走。每台电脑随着岁月变更都在几经易主,公司的部门主管们还偶尔将某台计算机调配给谁谁,而资产主管部门无从知晓,无法实时跟踪.
原有的EXCEL对其资产管理已经力不丛心了.而采购一些这方面专业的软件,对于我们这种IT非公司主导业务需要的情况来说,是不可能能审批费用下来的。另外,也考虑到:专业软件也未必能100%适应我公司实际情况,对其进行的部署后期维护可能也是一块大的成本。
几经考虑,决定自己来为企业量身定做。当然,做这个决定之前,是因为有如下几个因素:一: 公司全部笔记本及台式机全是:DELL   ThinkPad ThinkCentre 这三种品牌机器,实际资产物理环境并不复杂;二: 公司有域环境,并且全员都登录到域下工作;三:公司有统一的邮件系统,沟通方式畅通。当然,更重要的:主管领导全力支持。
开始之前:
首先面临的是:究竟本方案做完后,要解决哪些问题?要达到什么预期效果?后期如何维护?等等,历时多次和同事领导们搓商,达成如下共识:
1. IT资产设备数据库要本着简单,高效,可扩展的原则去设计;
2. 利用公司现成的MSSQL数据库服务器,全员资产设备数据入到库后并结合域环境,定期自动采集并更新数据库,保持数据的有效性。(待后文详解信息采集过程的实现方法);
2. 要为公司领导及主管IT资产设备的部门提供:查询界面,比如:按部门查,按域用户名查,按工号查;按机器型号查;按内存数量不低于某某查。并提供导出为表格,为领导们调配机器给谁及看配置情况做参考,更为解决IT资产设备管理做一个有效的真正的整体解决方案 (可以手工建帐及报废机器销帐等等更多应有的功能)。(待后文详解实现方法及过程);
3. 为各部门公共流通的临时借用电脑提供标准的电子台帐登记工作,实现网络实时登记,能实时反映到管理部门查询去向.   (待后文详解实现方法及过程);
解决问题1:
mssql数据库设计,几经讨论,资产管理本身必须的字段有:

sn: 就是机器本身的SN号(重要性我就不描述了);
username:  这台机器使用人的域用户名;
machinename: 机器名(我们公司加域的时候是有统一的命名方法的,绝不乱起。)
manufacturer: 设备制造商(比如是DELL的还是联想的)
model: 设备型号(比如:DELL630   9637ICD等机器本身厂家型号)
memory: 内存多少
cpu: cpu型号
harddisk:  硬盘型号及大小
video: 显卡型号
lastdata: 用户IT资产信息采集时间
remark: 备注
当然,还有一些管理字段的需要,后文将一一介绍。
希望大家多多指点。
>>>>为企业量身定制IT资产管理解决方案(二)  之400个客户端硬件配置信息采集
为企业量身定制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.若用户的电脑域环境不存在,或者没有检测到所在部门,上图中的灰色部分将变亮,让用户自己输入自己的域用户名并下拉列表选择用户所在的部门.
至此。客户端的信息采集工作通过如上两种方法进行,相信很快就齐了。当然,到最后若有极个别的情况,我就手入录入了。想必这种情况应不会出现吧。。以上方法一还可用于今后信息定施组策略更新信息。当中效果应是其妙无穷!
上一篇:为企业量身定制IT资产管理解决方案(一) 之基本框架设计
敬请期待我本系列的下篇。。。。
本文出自 “boyhong” 博客,转载请与作者联系!
[10楼]      九叔
2010-07-19 15:46:15
不错,不过我比较习惯用everest提交,调用代码更短
博主回复:
恩。我们公司就DELL和THINK的。。基于WMI枚举这些信息还是很轻松的。不过,我试了一下,其它一些机型的。比如早期方正8000,9000,E620,WMI枚举不出SN号,有机会试试everest。。呵呵。。感谢~~
2010-07-19 16:08:53