February 22nd, 2011

plush

Феерический костыль

Начальник увлекся идеей делать бекап по 1 кнопке. А это значит, что надо удаленно закрывать проги и тормозить сервисы, которые работают с базой, потом копировать базу, и снова все запускать. Сейчас это все делается с 3х машин (закрываем, запускаем прогу, которая по таймеру поднимет все снова), особо не мешает, но "не спортивно".

С помощью PsTools утилит можно легко запускать/гасить проги и сервисы, и со всеми прогами все получилось кроме одной. Она закрывается отлично, а при запуске - появляется окно программы, настройки считывает, а к базе не подключается и не начинает работать. При нажатии на кнопку "запуск" вручную - пишет невнятное сообщение "Не удается инициализировать сессию (ошибка 342249)". Запускаешь на машине по RDP - все работает нормально. Запускаешь локально на машине - тоже работает. Запускаешь через PsExec - запускается и не работает. Посношали мозг службе поддержки софтины - но те, кто писал ее много лет назад уже ушли, а новые программеры туда лезть не хотят, потому что софтина уже старая, хоть и от этой фирмы.

Совокуплялись часа 4. Запускали через bat файл, через cmd, через runas, через start. Потом перерыли все права, завели нового юзера, перепробовали еще кучу вариантов. Не работает, хоть ты тресни.

У меня кончается терпение, открываю Дельфи, 4 строки кода - 10 килобайт exe прога, говорю начальнику "запускай удаленно". Запускает - все работает. Вопрос "КАК?!?". А все просто - прога эмулирует дабл клик на ярлычке софтины. И запускает ее уже полностью локально. Так как машина специфическая, и за расположением и открытыми окнами следит другая моя софта, то ярлычек при запуске никогда и ничем не закрывается. И даблкликер отрабатывает всегда без проблем.

Правда фееричность костыля улыбнула даже меня.