2014-10-28 1 views
0

프로세스 빌더를 사용하여 "net use"명령을 호출하려고합니다. PrintWriter를 사용하여 OutputStream에 암호를 전달하면 다음 오류로 실패합니다. 시스템 오류 1219가 발생했습니다. 둘 이상의 사용자 이름을 사용하여 동일한 사용자가 서버 또는 공유 리소스에 여러 번 연결할 수 없습니다. 서버 또는 공유 리소스에 대한 이전의 모든 연결을 끊고 다시 시도하십시오."net use"명령에 대해 프로세스 빌더가 암호를 전달하지 않음

수동으로 실행하여 사용자 이름, 암호 및 명령을 확인했습니다. 그 작업을 잘

코드 조각 : 제안

ProcessBuilder pb = new ProcessBuilder("net","use","\\\\<SERVERNAME>\\<SharedLocation>","/USER:<username>","*"); 
Process p = pb.start(); 
OutputStream out = p.getOutputStream(); 
PrintWriter writer = new PrintWriter(out);  
writer.println("<pwd>".toCharArray()); 
int exitCode = p.waitFor();  
System.out.println("Exit Code :"+ exitCode); 

답변

0

몇 : 시작하기 전에 모든 연결을 제거하는 첫 번째 단계로

+0

감사를 참조하십시오. net use */delete/y'를 사용하여'net use'를 시도한 연결을 제거한 모든 연결을 제거했습니다. 이제는 다른 오류로 실패하고 있습니다 : _ 시스템 오류 86이 발생했습니다. 지정한 네트워크 암호가 올바르지 않습니다 ._ 하지만 동일한 암호로 cmd에서 명령을 실행할 때 성공적으로 통과합니다. 비밀번호를 잘못 전달하는 방법은 무엇입니까? – Anuj

+0

코드가 저에게 효과적입니다. http://stackoverflow.com/questions/208839/how-can-i-mount-a-windows-drive-in-java?lq=1에는 다른 코드 샘플이 있습니다. – RedGreenCode

+0

코드에서 사용한 암호를 전달하는 것과 같은 방법으로 사용 했습니까? 내 친구의 시스템에서 코드를 실행하려고 했는데도 여전히 같은 오류가 발생합니다. – Anuj

관련 문제