我写一个应用程序,以检查是否从打印服务器的网络打印机连接到一台远程机器,但有麻烦的遥控部分...我使用System.Printing并传入远程主机名/ IP地址通过'compID' 变量。 我遇到的问题是,代码总是返回网络打印机我的本地机器上,而不是在远程机器:
EnumeratedPrintQueueTypes[] compEnumerationFlags = { EnumeratedPrintQueueTypes.Connections };
PrintServer compPrinters = new PrintServer("\\\\" + compID);
PrintQueueCollection printQueuesOnComputer = compPrinters.GetPrintQueues(compEnumerationFlags);
List<string> compPrinterList = new List<string>();
foreach (PrintQueue printer in printQueuesOnComputer)
{
compPrinterList.Add(printer.Name);
}
string csv = string.Join("\n", compPrinterList.ToArray());
Microsoft.VisualBasic.Interaction.MsgBox(csv);
原谅底有凌乱一点,但它只是让我看看有什么结果的时刻一个快速和肮脏的方式。
奇怪的是,如果我改变“compID”变量我们的实际打印服务器,并从“连接到‘共享’更改标志,那么代码成功返回从我们的打印服务器的所有共享打印机。
所有这一切正在作为我们的域管理员,所以应该希望不会是一个问题在这里。 有没有简单的东西我俯瞰,还是有某种的类型的机器的限制,我可以用打印服务器连接?