我有这个批处理文件:
@echo off
echo c:tempMyProgram.exe > commands.txt
runas /profile /savecred /user:user1 "cmd /k remote /c computerB session_1 < commands.txt"
....
解释:
我将remotley连接到使用User1并执行myProgram.exe(即计算机B中)。myProgram.exe在控制台中执行并等待用户的操作(类型参数)。问题是我无法在MyProgram控制台中从键盘上输入任何内容,似乎键盘被完全忽略了!。
我知道我必须切换到键盘的stdin = 0,但我不知道该怎么做。
谢谢
用cmd /k ... < commands.txt
重定向stdin时,您会失去stdin。您为什么希望将其拿回来?所有子进程都继承其基础(0、1和2)文件描述符。
commands.txt
是批处理文件吗?如果是这样,为什么不运行它而不是从中转移命令呢?您可以将该文件复制到远程计算机,然后调用它,使CMD打开。
runas /user:user1 "cmd /k remote /c computerB session_1 call c:tempcommands.cmd"
当我这样做时,CMD窗口仍然保持打开状态,我可以输入其中。