Bginfo是一款桌面显示系统信息的软件,使用它可以协助系统管理员更高效的诊断用户的故障。通过Bginfo,用户的桌面会显示出计算机名、IP地址等信息。例如,
![](https://i-blog.csdnimg.cn/blog_migrate/144be0b5029030ce8116f3cf4926ebd6.jpeg)
最近,我在公司的AD上部署了这款软件,有一些心得给大家分享。
基础篇
这款软件可以在
http://technet.microsoft.com/zh-cn/sysinternals/bb897557(en-us).aspx下载到,最新版本是4.16。
下载后,在阅读许可协议后打开软件,编辑你想要显示在桌面上的字段,然后点击即可。在界面上方可以编辑显示信息的字体等格式,右侧的Fields可以插入预置的字段。当然,如果需要更多的字段,可以通过Custom按钮进行自定义。
在设置好显示内容后,可以点击Preview进行预览(修改内容实时生效),确定后点击OK即可。
![](https://i-blog.csdnimg.cn/blog_migrate/5121c8ae8dc4eeee909370f1136c95df.jpeg)
马上,您将会看到桌面的壁纸上多了让人振奋的计算机信息吧?让我来简单的说一下原理。这款软件通过WMI查询将数据组织好以图层的方式附在当前壁纸上并重新生成新的壁纸,然后应用新壁纸。也就是说,其实,我们的壁纸是被软件替换了,那些信息就是壁纸图片的一部分。
试想一下,如果用户的桌面都有了这样的壁纸,当我们询问用户的IP地址的时候,再也不用指导用户去查看IP地址了,一切工作变得轻松快捷:)
进阶篇
在这个小节,我将讲述如何将Bginfo部署到AD环境中。
部署的简单思想就是将软件及其配置文件放在共享目录中,然后配置组策略的用户启动脚本来调用这个软件和其配置。
简单部署步骤:
Step1:在域控制器上建立一个共享目录,权限设为NTFS和共享目录都指派Domain Users为可读。
Step2:Bginfo程序拷贝到共享目录中,编辑好需要显示的内容,然后将配置文件(*.bgi)也存放在共享目录。
Step3:在共享目录中建立批处理文件(*.bat),内容范例如下,
@echo off
\\192.168.0.200\bginfo\bginfo.exe /nolicprompt /i\\192.168.0.200\bginfo\bginfo.bgi /timer:00
\\192.168.0.200\bginfo\bginfo.exe /nolicprompt /i\\192.168.0.200\bginfo\bginfo.bgi /timer:00
解释一下,第一行@echo off是为了不显示下面执行的代码内容,这样做可以提高安全级别,用户执行时候的CMD窗口看不到后面的语句。事实上执行速度很快,用户基本上看不到CMD窗口。但为了安全,我们还是加上这一句话。第二行,
\\192.168.0.200\bginfo\bginfo.exe是程序的路径,/nolicprompt参数的含义是跳过许可协议EULA,/i是制定配置文件的路径,
\\192.168.0.200\bginfo\bginfo.bgi就是我的配置文件,/timer:00是显示主界面的时间,0为不显示。
更多参数说明,请点击bginfo软件的help--about或参考
http://technet.microsoft.com/zh-cn/sysinternals/bb897557(en-us).aspx。
Step4:
部署组策略用户配置的启动脚本。注意,脚本路径请填写UNC路径,IP地址比主机地址更好。
这样部署,初的来看似乎没什么问题,但是时间久了,您将会发现有两个问题:1)用户的桌面会变成纯色的桌面 2)如果用户更换了桌面壁纸,Bginfo还是会显示纯色的桌面,也就是说用户根本不能更改壁纸。
出现上述问题的原因,我分析了一下,基本上是由于Bginfo是在共享文件夹中调用运行,并不能获取用户原先的壁纸。
根据这样的推断,上述的步骤可以稍作修改:
组策略用户启动脚本分两个,1)使用VBS将bginfo、bgi配置文件拷贝到用户本地磁盘 2)运行用户本地磁盘上的bat批处理
当然,要想让VBS顺利的拷贝到本地,您需要新建一个计算机策略,在文件系统中开放Domain User/System/User的写入文件夹权限(也许这个权限设定不严谨,欢迎读者指出)
基本上大功告成啦!不过鉴于XP的组策略生效方式是异步处理,所以两条用户启动脚本的执行中最好加入时间间隔。
网上讲bat文件延时的方法很多,我就介绍一种最简单的方法,那就是2003系统及后续系统中附带的timeout工具。您可以从这些系统中提取后使用,但请千万注意32位系统和64位系统的timeout不能混用。
有了这个工具,我们也可以把这个程序拷贝到用户本地文件夹,然后修改bat批处理文件,在@echo off后加入这句话,
c:\bginfo\timeout.exe /t 10
这样,Bginfo就会在拷贝文件完成后的10秒后执行。
高手篇
既然Bginfo是利用WMI读取用户信息,那么我们是否有办法可以将这些信息搜集起来呢?
Bginfo非常友好,提供了TXT/XLS/SQL的输出。
设置输出,只需在Bginfo的软件中,点击file,database。
经测试,DC上能够正常将信息写入SQL,但是客户端始终报错,没有写入权限。这个问题也没有一个很好的办法。如果哪位高人知道如何解决,麻烦给小弟指引一二:)
另外,如果您使用的是将统计信息写入到SQL,请一定要在批处理的参数中加入/silent,这个参数能静默执行Bginfo,即使出错也不显示出错信息。这样做,因为Bginfo的出错信息中含有数据库的帐号和明文密码!!!
以上信息仅供参考,欢迎您回复文章与我讨论。
转载于:https://blog.51cto.com/cenchao/299576