Мне нужно удаленно просмотреть / получить доступ к уже запущенной командной строке на другом компьютере (он был запущен этим компьютером локально). ОС локальной машины - Windows 7 32 (или 64) бит.

Такие программы, как gbridge, ultraVNC и удаленный рабочий стол Windows, не будут работать, потому что процесс, работающий на машине, замедлится, если я посмотрю что-то, кроме терминала (происходит несколько захватов фильмов, которые я не хочу вставлять частота кадров).

Я также не хочу блокировать удаленный доступ к компьютеру. Есть ли какая-то особенность обычной программы, которая позволяет мне удаленно просматривать только командную строку удаленного компьютера без ущерба для частоты кадров компьютера?

Все это будет сделано с помощью VPN в безопасной сети, поэтому я не очень обеспокоен, если часть решения включает в себя простой текст.

Есть ли способ, который кто-нибудь знает, чтобы сделать это? Вопросы приветствуются.

2 ответа2

0

Вы можете изменить команду, которая вызывает командную строку на удаленной машине, чтобы перенаправить ее стандарт в файл. Это можно сделать, указав > C:\path\to\logfile.log или >> C:\path\to\logfile.log в качестве последней команды в командной строке. Оператор > всегда создает новый файл, перезаписывая старый, если он есть. Оператор >> создает новый файл, если необходимо, и добавляет данные в файл. Добавление, очевидно, полезно, если вы не хотите, чтобы старый вывод уничтожался при каждом запуске скрипта.

Затем вы можете прочитать выходной файл без необходимости запускать какие-либо приложения для удаленного доступа; просто передайте текстовый файл по сети (SMB, FTP, HTTP, что угодно; это просто текст). Используя что-то вроде Wintee (порт Windows утилиты Unix tee), вы можете направить вывод как на экран (как обычно), так и в свой файл.

В зависимости от настроек вашей сети вы можете перенаправить вывод в файл на удаленном сетевом ресурсе. Это имеет очевидное преимущество, заключающееся в том, что вам вообще не требуется входить в систему на целевом компьютере, поскольку журнал его выходных данных хранится на сервере или в общей папке на вашем компьютере. Например:

   C:\>echo "Begin Log" >> \\Server123\Shares\logfiles\log1.log

Плохие вещи могут произойти, если сетевое расположение недоступно или при подключении с высокой задержкой, например, заметное увеличение времени выполнения сценария или вообще сбой, если удаленный путь недействителен или недоступен. Может быть предпочтительнее сохранить журнал локально, а затем использовать планировщик задач (или другой инструмент автоматизации), чтобы скопировать журнал (ы) в удаленную сетевую папку.

0

В Unix каноническим способом сделать что-то подобное было бы использование терминального мультиплексора, такого как экран GNU или tmux.

Поэтому в Windows вы можете запустить службу sshd под Cygwin, а затем запустить программу под экраном GNU (tmux настоящее время не работает под Cygwin). Для Cygwin существует готовый пакет screen . Вы можете использовать опцию -x на screen , чтобы отобразить сеанс терминала в нескольких местах.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .