인쇄 서버의 네트워크 프린터가 원격 컴퓨터에 연결되어 있지만 원격 부분에 문제가 있는지 확인하는 응용 프로그램을 작성 중입니다 ... System.Printing을 사용하고 있습니다. 'compID'변수를 통해 원격 호스트 이름/IP 주소를 전달합니다. 제가하는 데 문제는 코드가 항상 내 로컬 컴퓨터에 네트워크 프린터가 아닌 원격 시스템 반환한다는 것입니다 :원격 컴퓨터에서 네트워크 프린터 열거
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"변수를 실제 인쇄 서버로 변경하고 "Connections"에서 "Shared"로 플래그를 변경하면 코드가 프린트 서버의 모든 공유 프린터를 성공적으로 반환합니다.
이 모든 것이 우리 도메인에서 관리자로 실행되므로 잘만되면 여기에 문제가되지 않을 것입니다. 간과 할 수있는 것이 있거나 PrintServer로 연결할 수있는 컴퓨터 유형에 대한 일종의 제한이 있습니다. ?
어디에서 compID를 설정합니까? – TheKingDave
이전 텍스트 상자에서. 그러나 "PrintServer compPrinters = new PrintServer ("\\\\ xxx.xxx.xxx.xxx ");"에서 IP 주소/호스트 이름을 하드 코드해도 " - 그때 정확히 똑같은 문제가 생깁니다 – cmode
다음 플래그가 있어야합니다? 당신이 말했듯이 이상한 점은 'compID'변수를 실제 프린트 서버로 변경하고 플래그를 "Connections"에서 "Shared"로 변경하면 코드가 프린트 서버의 모든 공유 프린터를 성공적으로 반환한다는 것입니다. compID 나 그 원인이되는 플래그가 무엇입니까? – TheKingDave