使用WinAudit收集域成员硬件配置

本文介绍了如何利用小巧的工具WinAudit,通过域文件共享和AD策略,自动收集域成员的硬件配置信息,并将其存储在SQL Server数据库中。然后通过SQL脚本进行数据转换,创建视图,再结合数据库邮件功能,定期将硬件配置报告发送至指定邮箱。

 SCCM有些大材小用,所以找了这个小巧的工具,只有800多K。
使用过程原理是:
1.将这个软件放在域文件共享服务器上
2.在AD中配置策略,在用户登录脚本中,执行此工具,此工具有命令行方式,而且支持将内容直接写入到数据库中。
----其实,做到这儿已经能将数据收集上来了,但是它的记录模式,是一个计算机某一参数为一行记录,所以要写个行转置的sql语句,保存为一个视图。
3.编写了一个行列转置,并只得到相关感兴趣的字段。
4.懒得修改公司的OA,为了能及时得到这个查询结果,利用sqlserver里的数据库邮件功能,并设定一个作业,每周五12点自动执行将视图,并将查询结果发送到指定邮件中。



1步骤就不详细说了
2步骤的脚本详细是:
//192.168.0.6/Software/系统工具/WinAudit.exe /r=gt /o=odbc /f=driver=sql server;server=192.168.0.2;uid=WinAudi;pwd=WinAudi;database=HardwareInfo; /l=log.txt /m=正在收集电脑硬件配置,请稍候
(注:数据库自己要事先建立,用户名和口令也要设定好,第一次执行的时候,工具会自动创建表)。
3.视图的脚本是

 

WITH AllComputers AS (SELECT     Computer, MAX(AuditID) AS auditid
                                                   FROM          dbo.WinAudi2
                                                   GROUP BY Computer)
    SELECT    MIN(WinAudi2_1.DateTimeDB) AS 配置上传日期, WinAudi2_1.Computer, MAX(CASE WHEN itemorder = 1 THEN ItemValue1 ELSE '' END)
                            AS ComputerName, MAX(CASE WHEN itemorder = 2 THEN ItemValue1 ELSE '' END) AS Domain_Name,
                            MAX(CASE WHEN itemorder = 5 THEN ItemValue1 ELSE '' END) AS Description, MAX(CASE WHEN itemorder = 6 THEN ItemValue1 ELSE '' END)
                            AS Operating_System, MAX(CASE WHEN itemorder = 7 THEN ItemValue1 ELSE '' END) AS Manufacturer,
                            MAX(CASE WHEN itemorder = 8 THEN ItemValue1 ELSE '' END) AS Model, MAX(CASE WHEN itemorder = 9 THEN ItemValue1 ELSE '' END)
                            AS Serial_Number, MAX(CASE WHEN itemorder = 11 THEN ItemValue1 ELSE '' END) AS Number_Of_Processors,
                            MAX(CASE WHEN itemorder = 12 THEN ItemValue1 ELSE '' END) AS Processor_Description,
                            MAX(CASE WHEN itemorder = 13 THEN ItemValue1 ELSE '' END) AS Total_Memory, MAX(CASE WHEN itemorder = 14 THEN ItemValue1 ELSE '' END)
                            AS Total_Hard_Drive, MAX(CASE WHEN itemorder = 15 THEN ItemValue1 ELSE '' END) AS Display,
                            MAX(CASE WHEN itemname = 'IP Address' THEN itemvalue1 ELSE '' END) AS IP_Address
     FROM         dbo.WinAudi2 AS WinAudi2_1 INNER JOIN
                            AllComputers AS AllComputers_1 ON WinAudi2_1.Computer = AllComputers_1.Computer AND WinAudi2_1.AuditID = AllComputers_1.auditid
     GROUP BY WinAudi2_1.Computer, WinAudi2_1.AuditID

 

4.创建数据库邮件,在sqlserver2005以上,在sqlserver Management studio直接有个数据库邮件,按照向导操作即可。在sqlserver2000里应该是用xp_sendmail这个存储过程,如果您是2000,请 自己稍微研究一下。
5.创建一个作业,执行的步骤脚本是:

DECLARE @tableHTML  NVARCHAR(MAX) ;

SET @tableHTML =
    N'<H1>所有加入A公司域的计算机实时生成的计算机硬件配置清单</H1>' +
    N'<table border="1">' +
    N'<tr><th>配置上传日期</th><th>计算机</th>' +
    N'<th>计算机名</th><th>描述</th><th>域名</th><th>操作系统</th>' +
    N'<th>厂家</th><th>型号</th><th>序列号</th><th>CPU数量</th><th>CPU</th>' +
    N'<th>内存</th><th>硬盘</th><th>显示器</th><th>IP</th></tr>' +
    CAST ( ( SELECT td = 配置上传日期,       '',
                    td = Computer, '',
                    td = ComputerName, '',
                        td = Description,'',
                    td = Domain_Name, '',
                    td = Operating_System, '',
                    td = Manufacturer,'',
                      td = [Model],''
      , td = [Serial_Number], ''
      , td = [Number_Of_Processors], ''
      , td = [Processor_Description], ''
      , td = [Total_Memory], ''
      , td = [Total_Hard_Drive], ''
      , td = [Display], ''
      , td = [IP_Address], ''
              FROM [HardwareInfo].[dbo].[V_AllComputerInfo]
              FOR XML PATH('tr'), TYPE
    ) AS NVARCHAR(MAX) ) +
    N'</table>这是系统自动发送的邮件,请不要回复此邮件。如果想要退订此邮件,请打电话与数据库管理员联系。' ;



EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'Default',
    @recipients = N'hg@abc.com.cn;ttt@abc.com.cn',
    @subject = N'A公司IT资产清单(计算机)',
    @body = @tableHTML,
    @body_format ='HTML';

 

 

下面上个收到的邮件截图

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值