2010-03-31 107 views
4

當我轉到打印機和傳真對話框時,我可以單擊Add a printer鏈接,選擇Network Printer,然後Find a printer in the directory。從那裏我得到一個對話框,可以讓我找到企業中的所有打印機。如何找到企業中的所有網絡打印機?

我需要用我的代碼找到所有的網絡打印機。我怎樣才能做到這一點?

請注意,我不是在談論連接到我的PC的網絡打印機,而是企業中的所有網絡打印機(我的工作場所有近4000臺打印機)。

P.S. PrintServer()。GetPrintQueues僅返回連接到計算機的打印機。

P.P.S.下面是我想要的一個簡短的視頻:http://www.angryhacker.com/toys/FindAllPrinters/FindAllPrinters.html

回答

4

DirectorySearche [R與 (objectClass=printer) (objectClass=printQueue)過濾器應該做的伎倆。

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

不,它沒有返回任何內容。如果沒有過濾器,它只會返回交換電子郵件組的羣組,但根本沒有打印機。 – AngryHacker 2010-04-02 16:54:58

+0

是的,我找到了同樣的東西。謝謝你的幫助。 – AngryHacker 2010-04-03 04:36:19

相關問題