Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以C语言获取域中所有打印服务器的列表_C#_.net_Network Printers - Fatal编程技术网

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

C# 以C语言获取域中所有打印服务器的列表,c#,.net,network-printers,C#,.net,Network Printers,我正在一个大环境中为技术支持团队编写实用程序。我需要提供域中所有打印服务器的列表,并让他们选择一个。一旦他们选择了打印服务器,我将列出该打印服务器上的所有打印队列,并让他们选择一个。我找到了很多关于如何从打印服务器中提取打印队列列表的示例,但没有找到如何获取打印服务器列表的示例 如何获取域C中所有打印服务器的列表?您可以使用System.Management命名空间。请参阅此线程: 我不确定这是否有用,但您可以查找网络中的所有计算机并检查它们的名称 像这样: // Reference Syste

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


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

您可以使用System.Management命名空间。请参阅此线程:

我不确定这是否有用,但您可以查找网络中的所有计算机并检查它们的名称

像这样:

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

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

导入模块ActiveDirectory 获取ADObject-LDAPFilter&&uncName=*objectCategory=printQueue-properties*| Sort Object-Unique-Property servername |选择servername


感谢您的回复,但我不认为这可以帮助我获得打印服务器列表。我可以得到所有的打印机,但在我们的环境中,这将是数千台。我需要显示打印服务器的列表,然后在它们选择打印服务器后,列出该服务器上的队列。查看System.print.PrinterServer命名空间:。这有一个GetPrintQueue方法。这正是我将在任务的后半部分使用的方法。我已经把那块盖好了。我需要的是一种获得所有可用打印服务器列表的方法。你找到解决方案了吗,还是我们的wirklich找到了。请分享或投票。谢谢