我需要创建一个网络上的计算机列表,该列表还将告诉我每台机器上安装了哪些打印机。然后我需要进一步过滤那些本地驱动程序,并进一步过滤本地连接的打印机(USB 或并行)
所有计算机均采用 Microsoft ADS 2003 混合模式。客户端范围从 Win2k 到 Win7。
是否可以创建脚本?是否有免费工具可以执行此操作?是否有可以收集此类信息的付费工具?
另外一个需要关注的问题包括我需要多久扫描一次网络变化等等......
答案1
这只是部分解决方案,因为它不会告诉您有关驱动程序的任何信息。我通过登录脚本 (VBS) 收集打印机信息。相关部分是:
objOutputFile.WriteLine "Printers:"
objOutputFile.WriteLine "========="
set objPrinters = objNetwork.EnumPrinterConnections
For i = 0 to objPrinters.Count - 1 Step 2
objOutputFile.WriteLine "Port " & objPrinters.Item(i) & " = " & objPrinters.Item(i+1)
Next
set objPrinters = Nothing
而本地打印机可以通过端口识别。适用于 XP、Server 2003 和 Win7,我没有理由认为它不能适用于每个基于“NT”的 Windows 版本。
答案2
在之前的工作中,我使用过一个名为开放式审计信息技术填充 LAN 上所有 Windows PC 的数据库。Open-AudIT 使用 WMI 来清点 Windows 硬件和软件,因此它非常全面。我非常确定它可以满足您的要求。
不过,我只想说一句。我已经好几年没用它了,当时软件中还有一些瑕疵。优点是它是开源的,我只需要稍微调整一下代码就能让它完成我需要的工作。看起来这个项目还活着,所以从那时起它可能已经有所改进。