Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2015, 20:15   #1
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию Удаленная консоль.

Всем доброго. Все думал задавать вопрос или нет, всетки задам.
Появилась у меня прихоть - прикрутить к одной программе удаленное управление типа Telnet. Удаленная консоль CMD если по факту.
Проще говоря - я хочу со своего компа написать команду dir и получить результат с удаленного компа, как будто я за ним сижу.
Сам telnet мне использовать не хочется, причины свои, да и в винде, что использую я он урезан. По факту на половине компов его нет.
RAdmin-овская консоль управления хороша, но я там не все могу выполнять.
Например понадобилась команда taskkill, а консоль РАдмина сказала что не в курсе такой. В общем подумал я прикрутить свой удаленный командник.
И вроде бы нет никаких сложностей запустить CMD передав ему параметром команду, но что делать с командами перехода типа cd? Ведь после исполнения консоль должна оставаться открытой, иначе результат выполнения такой команды сведется на нет.

Вот и встал вопрос как лучше всего поступить. Какими технологиями воспользоваться.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.03.2015, 20:41   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Пусть приложение сервер держит запущенной cmd.exe с перенаправлением stdin,stdout,stderr в пайпы и запускает\закрывает тек. экземпляр cmd.exe тоже по команде.
Вот и все решение.
Человек_Борща вне форума Ответить с цитированием
Старый 14.03.2015, 21:08   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

М.м.м... Пайпы... Я читал что у них есть ограничение на размер данных.
И вот такая программа как far к примеру. С ней то так не получится удаленно работать. Хотелось бы зацепить не просто консоль, а и консольно-ориентированное ПО.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.03.2015, 21:17   #4
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

+1
рекомендую comspec запускать в джобе (CreateJobObject).
Помню в какой-то консольке если запустить неконсольную прогу консоль подвисает, и у юзера "некорректно" висит левое окно или месажбокс
А так еслифче закрыл сокет и все автоматом кильнулось

консольно ориентированное... замучаешься...
хотя http://www.programmersforum.ru/showthread.php?t=207504
для начала замути чтоб правильно CR обрабатывалось, т.е. печать на одной строке без LF
Не стесняемся, плюсуем!

Последний раз редактировалось Slym; 14.03.2015 в 21:30.
Slym вне форума Ответить с цитированием
Старый 14.03.2015, 21:29   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
рекомендую comspec запускать в джобе
Я понял что имеется ввиду и как привязать процесс к этому, но пока не пойму что это дает.
Цитата:
консольно ориентированное... замучаешься...
Ну да... Это весьма непростой вопрос...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.03.2015, 21:35   #6
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

допустим есть консоль cmd
ты ей послал regsvr32... юзеру вылез месажбокс и висящий процесс, который нужно не забыть перед выходом грохнуть...
а в Job можно задать ограничение, и при киле джоба кильнется все что было в нем запущено: и cmd и все что было через него запущено.

хуже когда консолька зависает например
start /wait
породит новую консоль подвесив старую
и корректно тут не выйти, exit не обработается, а в случае job - закрыв соединение убиваешь job и все с ним
Не стесняемся, плюсуем!

Последний раз редактировалось Slym; 14.03.2015 в 21:40.
Slym вне форума Ответить с цитированием
Старый 14.03.2015, 21:57   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Хм... надо это поподробнее обдумать.
А вдруг мне понадобится запуск GUIшного ПО? Ну вот так получается что юзверь звонит мол "У мну зависло - нажмите за меня кнопку". Они у меня не умеют через диспетчер снимать процессы. И шо самое интересное не умеют и запускать с рабочего стола. Прога запускается при запуске винды. Ситуация конечно туповатая, и должна решаться обучением, но увы... В общем если мне нужно запустить прогу любую, то получается что если я ее запущу в процесс, привязанном к джобу после дисконнектнусь - запущенное закроется. Так ведь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.03.2015, 22:03   #8
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

Закроется. Я один раз намучался грохать за собой запущеный мусор.
Делай как знаешь... Но далее тебе захочется видеть уже и рабочий стол а это может даже проще чем консоль
http://www.programmersforum.ru/showp...63&postcount=5
Не стесняемся, плюсуем!

Последний раз редактировалось Slym; 14.03.2015 в 22:05.
Slym вне форума Ответить с цитированием
Старый 14.03.2015, 22:11   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Но далее тебе захочется видеть уже и рабочий стол
На это РАдмин есть. Но юзера постоянно работают, и иногда (раньше так было) их приходилось выгонять чтоб ПО обновить. У юзеров (это продавцы на кассе) клиенты есть, которые создают очередь и не всегда терпеливые. Поэтому практика фонового обновления уже больше года дает свои чудесные плоды. И юзерам не мешаю в большинстве случаев работать с клиентами и ПО регулярно обновляю как мне удобно. И все было бы зашипись если бы был домен - тут тебе и терминалы, и удаленные рабочие столы и вообще полный контроль с моей стороны над хозяйством. Но... ЖЫзнь чтука шутливая. XP Home урезанные донельзя, и сеть абы как поднятая - приходится выкручиваться совсем фантастическими способами.
Бывает приходит приказ "Срочно обновить ПО... вчера". А обновки требуют инсталляции визуально. И приходится юзеров выгонять - клиентов задерживать.
Так бы проинсталлил их удаленно в фоне и порядок. Сами инсталлки не сложные - пара записей в реестр и копирование DLL в каталоги с последующей регистрацией. В консоли скриптом вполне можно отделаться - быстрее чем визуальная инсталляция и удобнее.
Вот и ищу способы как это сделать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.03.2015, 22:31   #10
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

можно воспользоваться msi редакторами, но т.к. XPEmb может непроканать...
запили свой пакет инсталяшки и тут вспомнился формат файла обновлений DRWeb...
Код:
+timestamp, 8D17F12F
+lang.lst, EDCB0715
-update.drl, AB6FA8BE
+drwebupw.exe, 8C879982
+drweb32.dll, B73749FD
+drwebase.vdb, C5CBA22F
там же запуск был, не помню как не принципиально... тупо ini файл
все упаковываем в zip и шлем клиенту install MiPackage.zip
клиент распаковывает в темп, ишет наш аля "drweb32.lst" и интерпритирует скрипт
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаленная отладка DDoSed PHP 0 02.01.2013 17:58
Удаленная БД Apostol13 БД в Delphi 6 15.06.2011 09:23
удаленная MySql генерал БД в Delphi 3 24.04.2011 18:46
Удаленная БД DenisUser Помощь студентам 1 03.12.2007 11:44