Tera Term зависает / зависает при подключении при удаленном запуске

Я написал макрос Tera Term для подключения к последовательному порту, регистрации входящих данных и отправки нескольких тестовых команд. Если я запускаю макрос вручную с локального ПК, все работает без проблем. Я запускаю макрос с помощью ttpmacro.exe.

Я использую PsExec.exe для запуска некоторых пакетных скриптов на удаленных системах. Когда я пытаюсь запустить свой макрос Tera Term как часть этих пакетных сценариев, он зависает / зависает при попытке подключения. Макрос просто останавливается и ничего не делает. Я точно знаю, что именно там он зависает, потому что у меня была запись макроса в файл после любой команды. Если я удаляю команду "connect" из макроса Tera Term (остальные мои команды остаются в макросе) и вместо этого подключаюсь с помощью "ttermpro.exe /C=1 /BAUD=115200 /M=C:\path-to-macro\" "он все еще зависает / зависает. Макрос не запускается, и последовательный порт не открывается (если я запустил удаленный рабочий стол после запуска удаленного сценария, я могу открыть сеанс PuTTY для этого последовательного порта).

Я извиняюсь, если это звучит странно. Я попытаюсь представить упрощенный пример: в моей удаленной системе я создал четыре файла: test_ttermpro.bat, test_ttermpro.ttl, test_ttpmacro.bat и test_ttpmacro.ttl.

Содержимое test_ttermpro.bat:

"C:\Program Files (x86)\teraterm\ttermpro.exe" /C=1 /BAUD=115200 /M=C:\Users\Public\test_ttermpro.ttl

Содержимое test_ttermpro.ttl:

SessionLog='C:\Users\Public\'
strconcat SessionLog 'macrooutput_pro.txt'
fileopen sessionlogfile SessionLog 0 0
if sessionlogfile=-1 exit

;write to file to verify macro gets executed
filewriteln sessionlogfile '1'

disconnect
closett
exit

Содержимое test_ttpmacro.bat:

"C:\Program Files (x86)\teraterm\ttpmacro.exe" C:\Users\Public\test_ttpmacro.ttl

Содержимое test_ttpmacro.ttl:

SessionLog='C:\Users\Public\'
strconcat SessionLog 'macrooutput.txt'
fileopen sessionlogfile SessionLog 0 0
if sessionlogfile=-1 exit

filewriteln sessionlogfile '1'

ConnectString='/C=1 /BAUD=115200'

filewriteln sessionlogfile ConnectString

; Connect to serial port 1 at 115200 baud
connect ConnectString
disconnect
closett
exit

Если я запускаю пакетные сценарии, когда я удаленно вошел в удаленную систему, из удаленной системы они запускаются без проблем. Они открывают COM-порт, и каждый пишет в свой собственный файл журнала сеанса.

НО, с этими четырьмя файлами в удаленной системе из моей локальной системы я попытался запустить:

psexec.exe /accepteula \\%REMOTE_SYSTEM% C:\Users\Public\test_ttermpro.bat

а также

psexec.exe /accepteula \\%REMOTE_SYSTEM% C:\Users\Public\test_ttpmacro.bat

После выполнения каждой команды (выполняемой отдельно для проверки различных сценариев) в удаленной системе я мог видеть ttermpro.exe в списке процессов в диспетчере задач Windows, но я мог открыть COM-порт. test_ttermpro.bat никогда не запускал свой журнал сеанса (макрос никогда не запускался). test_ttpmacro.bat действительно имел журнал сеанса, но просто застыл на команде подключения. Ни один не выходил, пока я не закончил процесс через диспетчер задач Windows.

Я использую Tera Term версии 4.87.

Любые идеи о том, почему команда "connect" кажется зависает / зависает при удаленном запуске Tera Term? Я пропускаю параметр командной строки? Есть ли лучший способ запустить Tera Term удаленно и использовать макрос?

1 ответ

Решение

Полезное решение с использованием ttermpro.exe:

Я изменил test_ttermpro.bat, чтобы использовать параметр "/I". Этот файл.bat теперь выглядит так:

"C:\Program Files (x86)\teraterm\ttermpro.exe" /I /C=1 /BAUD=115200 /M=C:\Users\Public\test_ttermpro.ttl

Добавление этого параметра позволяет Tera Term подключаться к последовательному порту и считывать / записывать / регистрировать данные, когда этот файл.bat вызывается удаленно с помощью Psexec.exe.

Другие вопросы по тегам