如何确定安装打印机的服务器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何确定安装打印机的服务器相关的知识,希望对你有一定的参考价值。

如果我在Active Directory中查找打印机,有没有办法确定它所安装的服务器?如果我在Active Direcory控制台中查找打印机,属性标题告诉我服务器,我如何以编程方式确定此值?

编辑:语言是C#

答案

AD中printQueue对象的serverName属性或uncName属性可能是您想要的。

另一答案

要建立在alexn提供的链接中的答案,这里是我编写的程序,它将打印出计算机上每台打印机的服务器信息:

        String server = String.Empty;

        // For each printer installed on this computer
        foreach (string printerName in PrinterSettings.InstalledPrinters) {
            // Build a query to find printers named [printerName]
            string query = string.Format("SELECT * from Win32_Printer WHERE Name LIKE '%{0}'", printerName);

            // Use the ManagementObjectSearcher class to find Win32_Printer's that meet the criteria we specified in [query]
            ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
            ManagementObjectCollection coll = searcher.Get();

            // For each printer (ManagementObject) found, iterate through all the properties
            foreach (ManagementObject printer in coll) {
                foreach (PropertyData property in printer.Properties) {
                    // Get the server (or IP address) from the PortName property of the printer
                    if (property.Name.Equals("PortName")) {
                        server = property.Value as String;
                        Console.WriteLine("Server for " + printerName + " is " + server);
                    }
                }
            }
        }

打印机的所有其他属性也可用作PropertyData。

另一答案

若要查找共享打印机,请单击“桌面”,双击“网络”,双击打印机所连接的计算机的名称,然后双击要在Windows SBS Console中列出的打印机。

以上是关于如何确定安装打印机的服务器的主要内容,如果未能解决你的问题,请参考以下文章

PHP代码-psysh调试代码片段工具

c_cpp 这个简单的代码片段显示了如何使用有符号整数在C中完成插值。 for()循环确定要插入的范围

argparse 代码片段只打印部分日志

我如何使用 codeanywhere 片段

打印文件时却提示未安装打印机,是怎么回事

如何让 videoView 在片段内播放?