2014-02-05 2 views
0

나는이 배치 파일이 있습니다수없는

@echo off 
echo c:\temp\MyProgram.exe > commands.txt 
runas /profile /savecred /user:user1 "cmd /k remote /c computerB session_1 < commands.txt" 
.... 

이 해설 :
내가 USER1에 comupterB에 remotley 연결 myprogram.exe로 (즉 computerB에) 실행을 . MyProgram.exe는 콘솔에서 실행되고 사용자 (유형 인수)에서 작업을 대기합니다. 문제는 키보드에서 MyProgram 콘솔에 아무 것도 입력 할 수 없다는 것입니다. 키보드가 완전히 무시 된 것 같습니다.
키보드에 대해 stdin = 0으로 전환해야한다는 것을 알고 있지만 어떻게해야할지 모르겠다.
감사합니다.

답변

2

cmd /k ... < commands.txt으로 stdin을 리디렉션하면 stdin이 손실됩니다. 왜 당신은 그것을 되돌릴 것으로 기대합니까? 모든 하위 프로세스는 기본 (0, 1 및 2) 파일 설명자를 상속합니다.

commands.txt은 배치 파일입니까? 그렇다면 리디렉션 명령 대신 실행 해보십시오. 원격 컴퓨터에 해당 파일을 복사 한 다음 cmd를 열어두면 호출 할 수 있습니다.

runas /user:user1 "cmd /k remote /c computerB session_1 call c:\temp\commands.cmd" 

이렇게하면 cmd 창이 열린 채로 입력 할 수 있습니다.

+0

리모컨은 computerB에서 세션을 엽니 다. 입력 한 모든 명령은 computerB에서 실행됩니다. 즉, " Phiber

+0

원격 컴퓨터에서'commands.cmd'를'C : \ temp'에 복사하면 원격 컴퓨터에서'commands.cmd'가 실행됩니다. 왜냐하면 원격으로 실행되는 명령은'call C : \ temp \ commands.cmd'. – mojo