开发者

How can I locate all the network printers in the enterprise?

开发者 https://www.devze.com 2022-12-25 02:13 出处:网络
When I go to Printers and Faxes dialog, I can click the Add a printer link, select Network Printer开发者_JS百科, then Find a printer in the directory. From there I get a dialog box which lets me find

When I go to Printers and Faxes dialog, I can click the Add a printer link, select Network Printer开发者_JS百科, then Find a printer in the directory. From there I get a dialog box which lets me find ALL printers in the enterprise.

I need to find all the network printers with my code. How can I do this?

Note that I am not talking about network printers that are connected to my PC, but all network printers in the enterprise (my workplace has almost 4000 printers).

P.S. PrintServer().GetPrintQueues only returns printers attached to the computer.

P.P.S. Here is a short video of what I want: http://www.angryhacker.com/toys/FindAllPrinters/FindAllPrinters.html


DirectorySearcher with a filter for (objectClass=printer) (objectClass=printQueue)should do the trick.

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);
            }
        }
    }
0

精彩评论

暂无评论...
验证码 换一张
取 消