我有一個名爲myProgram.exe的程序在服務器上的控制檯上運行。在服務器上,我可以在控制檯中鍵入一個命令,它可以工作。
在客戶端,我如何使用批處理文件向此控制檯發送命令。我想附加到這個控制檯並傳遞給它一個命令在一行。這是可能的?如何發送命令到正在運行的程序?批處理文件
服務器:Windows 2003 Server的 客戶端:Windows XP或Win7的
我有一個名爲myProgram.exe的程序在服務器上的控制檯上運行。在服務器上,我可以在控制檯中鍵入一個命令,它可以工作。
在客戶端,我如何使用批處理文件向此控制檯發送命令。我想附加到這個控制檯並傳遞給它一個命令在一行。這是可能的?如何發送命令到正在運行的程序?批處理文件
服務器:Windows 2003 Server的 客戶端:Windows XP或Win7的
與remote.exe
詳細的解決方案在服務器 'A':在客戶'B'上: createSession.bat
:
@echo off
echo remote /s cmd session1 > commands.txt
echo @q >> commands.txt
remote /c A bootSession < commands.txt
del commands.txt
remote /c A session1
如果你想巡航能力超過一個會議,你應該運行在客戶機上的計數器和嵌入客戶端名稱+計數器在uid
。
你也可以創建隨機的uid。
我在客戶端B的代碼修改方式createSession.bat:
@echo off
echo remote /s cmd session1 > commands.txt
echo @Q >> commands.txt
runas /profile /savecred /user:User1"cmd /C %RemotePath%\remote /c computerA bootSession < %CD%\commands.txt"
runas /profile /savecred /user:User1"cmd /k %RemotePath%\remote /c computerA session1"
它工作正常,但CMD(bootSession)仍然打開的第一個實例,即使我送@Q遠程退出。你有想法關閉它,讓第二個實例(session1)。
再次感謝
我都試過,但它不工作: 的RunAs /資料/ SAVECRED /用戶:用戶1 「CMD/C(%RemotePath%\遠程/ C computerA bootSession <%CD%\ commands.txt中)退出」 – Phiber
對不起遲到回答。我沒有看到你已經發布了另一個問題作爲答案! 那麼你的代碼的問題是,你不再提供remote.exe從commands.txt的標準輸入,但沒有解析它到它的子進程的runas。 嘗試從批處理文件中刪除runas,而是通過runas調用批處理文件。 – MrPaulch
我用過:taskkill/f/fi「WINDOWTITLE eq Remote/C ComputerB」「bootSession」「」/ T – Phiber
謝謝,它的工作原理就在第二行echo remote/s cmd session1> commands.txt – Phiber
Happy聽到。我糾正了這條線。 – MrPaulch