¿Cómo obtener System.Printing.PrintServer.GetPrintQueues para devolver la lista de la cola de impresión desde el servidor remoto?

Problema

Estoy tratando deobtener una lista de colas de impresión disponibles en un servidor remoto.

En última instancia, esto tendrá que realizarse desde ASP.NET, pero por ahora me conformaría con una aplicación de consola para funcionar.

Cuando creo una instancia de laSystem.Printing.PrintServer clase usando la ruta a un servidor remoto Puedo obtener información básica sobre el servidor de impresión. Pero cuando llamo alMétodo GetPrintQueues Solo obtengo colas definidas en el cuadro local. No importa lo que use para el dispositivo remoto.

Código
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
Ejemplo:

Asumiendo la siguiente configuración

\\ local (Computadora local con 3 colas de impresión definidas, 1 es una conexión remota)LPrinter1LPrinter2\\ remote \ RPrinter1\\ remoto (Computadora remota con 2 colas de impresión definidas)
RPrinter1RPrinter2\\ otro (Alguna otra computadora con 1 cola de impresión definida)OPrinter

Los resultados son:

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

Print Server=\\remote  
\\remote\RPrinter1  

Print Server=\\other
\\remote\RPrinter1  

Mi mejor conjetura es que algo está sucediendo dentro del método GetPrintQueues () para hacer que el servidor de impresión se restablezca a la casilla local, ya que no importa cuál sea el nombre del servidor de impresión siempre que sea una computadora válida en la red.

Respuestas a la pregunta(2)

Su respuesta a la pregunta