2012-06-25 14 views
5

Pracuję w dużym środowisku, pisząc narzędzie dla zespołu wsparcia technicznego. Muszę podać listę wszystkich serwerów druku w domenie i pozwolić im wybrać jeden. Po wybraniu serwera wydruku wyświetlę listę wszystkich kolejek wydruku na tym serwerze druku i wybiorę je. Znalazłem wiele przykładów, jak wyciągnąć listę kolejek wydruku z serwera druku, ale nie ma przykładów, jak uzyskać listę serwerów druku.Uzyskaj listę wszystkich serwerów druku w domenie w języku C#

Jak uzyskać listę wszystkich serwerów wydruku w domenie (C#)?

+0

Znalazłeś rozwiązanie lub zrobiłeś jeden z naszych wirklichów. Udostępnij lub zagłosuj. Dzięki –

Odpowiedz

1

Możesz użyć Przestrzeni nazw System.Management.

Proszę odnieść się do tego wątku:
Is there a .NET way to enumerate all available network printers?

+0

Dziękuję za odpowiedź, ale nie widzę, gdzie to może mi pomóc uzyskać listę serwerów druku. Mogę zdobyć wszystkie drukarki, ale w naszym środowisku byłoby to tysiące. Muszę przedstawić listę serwerów druku, a po wybraniu serwera druku, wyświetl listę kolejek na tym serwerze. – ScottK

+0

Zobacz obszar nazw System.Print.PrinterServer: http://msdn.microsoft.com/en-us/library/system.printing.printserver.aspx. To ma metodę GetPrintQueue. – ems305

+3

Dokładnie to, czego użyję do drugiej połowy zadania. Mam to pokrycie. Potrzebuję sposobu na uzyskanie listy wszystkich dostępnych serwerów druku. – ScottK

0

Nie jestem pewien, czy to pomoże, ale można spojrzeć na wszystkie komputery w sieci i sprawdzić swoją nazwę.

tak:

// Reference System.DirectoryServices is needed 

DirectoryEntry root = new DirectoryEntry("WinNT:"); 
foreach (DirectoryEntry computers in root.Children) 
{ 
    foreach (DirectoryEntry computer in computers.Children) 
    { 
     if (computer.SchemaClassName == "Computer") { 
      if (computer.Name.IndexOf("printer-prefix-or-so")==-1) 
       Console.WriteLine(computer.Name); 
     }        
    } 
} 
0

W PowerShell można wykonać następujące czynności:

Import-Module ActiveDirectory Get-ADObject -LDAPFilter „(& (& (& (uncName = *) (objectCategory = printQueue)))) "-properties * | Sort-Object -Unique -Właściwa nazwaserwera | wybierz nazwęserwera

Powiązane problemy