如何找到企业中的所有网络打印机?

当我进入“打印机和传真”对话框时,我可以单击“ Add a printer链接,选择“ Network Printer ,然后单击Find a printer in the directory 。 从那里我得到一个对话框,让我找到企业中的所有打印机。

我需要用我的代码找到所有的网络打印机。 我怎样才能做到这一点?

请注意,我不是在谈论连接到我的PC的网络打印机,而是企业中的所有网络打印机(我的工作场所有近4000台打印机)。

PS PrintServer()。GetPrintQueues仅返回连接到计算机的打印机。

PPS这是我想要的简短video: http : //www.angryhacker.com/toys/FindAllPrinters/FindAllPrinters.html

带有(objectClass=printer) (objectClass=printQueue)filter的DirectorySearche应该可以解决问题。

 using (var e = new DirectoryEntry("LDAP://DC=example,DC=com")) using (var s = new DirectorySearcher(e)) { s.Filter = "(objectClass=printQueue)"; using (var c = s.FindAll()) { WL("Returned {0} objects", c.Count); foreach (SearchResult r in c) { WL("{0}", r.Path); } } }