VBA telnet с использованием plink (командная строка Putty) - отправьте команду в plink.exe - PullRequest
0 голосов
/ 04 ноября 2019

Я дергаю себя за волосы, пытаясь сделать что-то, что кажется достаточно простым, но я как раз в конце.

Я действительно далеко не ушел:

Sub Test1()

 Const TARGET_HOST = "192.168.0.2 -P 24" ' Some proprietary telnet port 
 Const PLINKPATH = "C:\program files\putty\plink.exe"

    Set sh = CreateObject("WScript.Shell")
    cmd = """C:\program files\putty\plink.exe"" -telnet " & TARGET_HOST


    sh.Run cmd & " | clip", 1, True

End Sub

Итак, я хочу сделать следующее:

  1. Подключиться к некоторой машине, используя VBA в качестве TCP/ IP-клиент.
  2. Отправьте команду - произнесите "help" + vbcrlf
  3. Захватите ответ в буфер обмена или в файл, оба из которых я затем смогу просто вставить в лист
  4. Эта часть действительно смущает меня - и с .run, и с .exec я не могу понять, как отправить «помощь» + возврат каретки. Я могу открыть окно оболочки, но не могу заставить StdIn отправить команду plink.exe.

Заранее спасибо за любого доброго человека, который может помочь мне здесь. Если этот метод не является правильным методом для отправки команды в plink.exe, пожалуйста, предложите, какие другие методы можно использовать, не используя метод winsock, который очень трудно поддерживать, двигаясь вперед.

1 Ответ

0 голосов
/ 06 ноября 2019

Вы можете использовать простое перенаправление ввода. Вы фактически уже перенаправили вывод с помощью | clip. Аналогично, чтобы перенаправить также ввод, выполните:

"echo help | " & cmd & " | clip"

См. Также Как выполнить удаленную команду, используя PuTTY через Telnet .

...