Как получить System.Printing.PrintServer.GetPrintQueues для возврата списка очередей печати с удаленного сервера?

проблема

Я пытаюсьполучить список очередей печати, доступных на удаленном сервере.

В конечном итоге это нужно будет выполнить из ASP.NET, но сейчас я бы согласился на работу консольного приложения.

Когда я создаю экземплярSystem.Printing.PrintServer класс, используя путь к удаленному серверу, я могу получить основную информацию о сервере печати. Но когда я звонюМетод GetPrintQueues Я получаю только те очереди, которые определены в локальной коробке, Неважно, что я использую для удаленного устройства.

Код
Imports System.Printing

Module Module1
  Sub Main()
    ListPrintQueues("\\local")
    ListPrintQueues("\\remote")
    ListPrintQueues("\\other")
  End Sub

  Sub ListPrintQueues(ByVal server As String)

    Dim ps As New PrintServer(server)
    Console.WriteLine("Printer Server=" & ps.Name)

    Dim flags() As EnumeratedPrintQueueTypes = {EnumeratedPrintQueueTypes.Connections, EnumeratedPrintQueueTypes.Local}

    Dim queues As PrintQueueCollection = ps.GetPrintQueues(flags)

    For Each pq As PrintQueue In queues
      Console.WriteLine(pq.FullName)
    Next

    Console.WriteLine()
  End Sub
End Module
Пример:

Предполагая следующую конфигурацию

\\местный (Локальный компьютер с 3 определенными очередями печати, 1 - удаленное соединение)LPrinter1LPrinter2\\ удаленный \ RPrinter1\\дистанционный пульт (Удаленный компьютер с 2 очередями печати)
RPrinter1RPrinter2\\Другой (Какой-то другой компьютер с определенной очередью печати)OPrinter

Результаты:

Print Server=\\local  
\\local\LPrinter1  
\\local\LPrinter2  
\\remote\RPrinter1  

Print Server=\\remote  
\\remote\RPrinter1  

Print Server=\\other
\\remote\RPrinter1  

Мое предположение состоит в том, что внутри метода GetPrintQueues () происходит что-то, что заставляет сервер печати быть сброшенным в локальное окно, поскольку не имеет значения, какое имя сервера печати, если это действительный компьютер в сети.

Ответы на вопрос(2)

Ваш ответ на вопрос