获取C#中域中所有打印服务器的列表

时间:2012-06-25 16:23:59

标签: c# .net network-printers

我在一个大型环境中工作,为技术支持团队编写实用程序。我需要提供域中所有打印服务器的列表,让他们选择一个。一旦他们选择了打印服务器,我将列出该打印服务器上的所有打印队列,并让他们选择一个。我已经找到了大量如何从打印服务器中提取打印队列列表的示例,但没有提供如何获取打印服务器列表的示例。

如何获取域中所有打印服务器的列表(C#)?

3 个答案:

答案 0 :(得分:1)

您可以使用System.Management命名空间。

请参阅此主题:
Is there a .NET way to enumerate all available network printers?

答案 1 :(得分:0)

我不确定这是否有帮助,但您可以查找网络中的所有计算机并查看其名称。

像这样:

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

答案 2 :(得分:0)

在PowerShell中,您可以执行以下操作:

  

Import-Module ActiveDirectory   Get-ADObject -LDAPFilter"(&(&(&(uncName = *)(objectCategory = printQueue))))" -properties * | Sort-Object -Unique -Property servername | select servername