2010-03-31 4 views
4

Lorsque je vais dans la boîte de dialogue Imprimantes et télécopieurs, je peux cliquer sur le lien Add a printer, sélectionner Network Printer, puis Find a printer in the directory. De là, je reçois une boîte de dialogue qui me permet de trouver toutes les imprimantes dans l'entreprise.Comment puis-je localiser toutes les imprimantes réseau de l'entreprise?

J'ai besoin de trouver toutes les imprimantes réseau avec mon code. Comment puis-je faire ceci? Notez que je ne parle pas des imprimantes réseau connectées à mon PC, mais de toutes les imprimantes réseau de l'entreprise (mon lieu de travail compte près de 4 000 imprimantes).

P.S. PrintServer(). GetPrintQueues renvoie uniquement les imprimantes connectées à l'ordinateur.

P.P.S. Voici une courte vidéo de ce que je veux: http://www.angryhacker.com/toys/FindAllPrinters/FindAllPrinters.html

Répondre

4

DirectorySearche r avec un filtre pour (objectClass=printer) (objectClass=printQueue) devrait faire l'affaire.

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

Non, il ne renvoie rien avec le filtre. Sans le filtre, il renvoie juste des groupes d'échange de groupes d'emails, mais pas d'imprimantes du tout. – AngryHacker

+0

Oui, j'ai trouvé la même chose. Merci de votre aide. – AngryHacker

Questions connexes