Необходимо выполнить ряд команд на удалённой машине по локальной сети. Для этого хочу запустить cmd на удалённой машине из Psexec. Но при чтении вывода командного интерпретатора (для анализа подключения и выполнения команд) в строке нет вывода psexec, только вывод cmd. А чтение StdoutRead зацикливается и не завершается, хоть поток пустеет.
Если пытаюсь запустить psexec напрямую без командного интерпретатора, то ловит только строчку "Microsoft Windows XP [Версия 5.1.2600]", выполнение cmd на удалённой машине сразу завершается.
При этом в консоль аутоита psexec текст исправно выводит:
[box]
PsExec v2.11 - Execute processes remotely
Copyright (C) 2001-2014 Mark Russinovich
Sysinternals - www.sysinternals.com
Connecting to 192.168.61.131...
Starting PSEXESVC service on 192.168.61.131...
Connecting with PsExec service on 192.168.61.131...
Starting cmd on 192.168.61.131...
cmd exited on 192.168.61.131 with error code 0.
[/box]
Код:
$sPid = Run(@ComSpec, "", @SW_HIDE, $STDIN_CHILD + $STDOUT_CHILD) ; Запуск cmd
StdinWrite($sPid, "psexec \\" & $sIP & " /u Администратор /p " & $sPass1 & " cmd" & @CRLF)
$sCMD_out = "" ; Строка для чтения выходного потока консоли
While 1
$sCMD_out = StdoutRead($sPid,False,False) ; Читаем поток
If @error Then ExitLoop ; пока текст не кончился
WEnd
Если пытаюсь запустить psexec напрямую без командного интерпретатора, то ловит только строчку "Microsoft Windows XP [Версия 5.1.2600]", выполнение cmd на удалённой машине сразу завершается.
Код:
$sPsexec = Run('psexec.exe \\' & "192.168.61.131" & ' /u Администратор /p ' & $sPass1 & ' cmd', "", @SW_HIDE, $STDIN_CHILD + $STDOUT_CHILD)
$sCMD_out = "" ; Строка для чтения выходного потока консоли
While 1
$sCMD_out = StdoutRead($sPsexec,False,False) ; Читаем поток
If @error Then ExitLoop ; пока текст не кончился
WEnd
При этом в консоль аутоита psexec текст исправно выводит:
[box]
PsExec v2.11 - Execute processes remotely
Copyright (C) 2001-2014 Mark Russinovich
Sysinternals - www.sysinternals.com
Connecting to 192.168.61.131...
Starting PSEXESVC service on 192.168.61.131...
Connecting with PsExec service on 192.168.61.131...
Starting cmd on 192.168.61.131...
cmd exited on 192.168.61.131 with error code 0.
[/box]