如何在所有计算机上发现本地安装的打印机

我需要在networking上创build一个计算机列表,它也会告诉我在每台计算机上安装了哪些打印机。 然后我需要进一步过滤那些本地驱动程序,并进一步过滤到本地连接的打印机(USB或平行)

所有的计算机都是Microsoft ADS 2003混合模式的一部分。 客户从Win2k到Win7。

是否可以创build一个脚本? 有没有免费的工具来做到这一点? 是否支付可以收集此types信息的工具?

另外一个问题包括我需要多长时间扫描networking以进行更改等。

这只是一个部分的解决scheme,因为它不会告诉你有关司机的任何事情。 我通过login脚本(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,我没有理由认为它不适用于Windows的每个“NT”版本。

在以前的工作中,我使用了名为Open-AudIT的开源工具的一部分来填充局域网上所有Windows PC的数据库。 Open-AudIT使用WMI来清点Windows硬件和软件,因此它非常全面。 我很确定它可以做你所要求的。

只是一个警告,但。 自从我使用它已经有几年了,当时在软件方面还有一些不尽如人意的地方。 好处在于它是开源的,我只需要调整一点代码即可完成我所需要的工作。 看起来这个项目还活着,所以从那时起它可能已经有所改善了。