Войти

Показать полную графическую версию : [решено] ОШИБКА RUNAS: Не удается запустить [...] 1056: Одна копия службы уже запущена.


allaq
09-03-2011, 02:19
Друзья, не поможете ли в таком вопросе. Имеется Windows XP. Требуется сделать так, чтобы в автозагрузке запускались две программы под двумя разными пользователями, не совпадающими с текущим. Я это реализовал двумя пакетными (.bat) файлами, в которых выполняю по команде RUNAS. До поры - до времени все работало, как надо. Но в один не совсем прекрасный день что-то произошло (возможно - накатилось какое-то обновление от M$), и обе программы перестали запускаться. Выдается ошибка, вынесенная в заголовок.
Я пробовал вместо двух .bat делать один, где запускать эти программы последовательно. Но если просто поставить две команды RUNAS - первая программа запускается и .bat ждет, пока она закроется, не идет дальше. А есть сделать start RUNAS, то все равно возникает ошибка 1056.
Как можно решить эту проблему? Спасибо!

P.S. Все это нужно для того, чтобы запустить при старте ОС одновременно 3 экземпляра одной и той же программы, которая не позволяет запускать более одного. Я пробовал также вместо RUNAS модифицировать ярлык программы в автозапуске ("Запускать с другими учетными данными"). Но в этом случае при запуске каждый раз надо вводить пароль того юзера, а это не подходит. И пароль снимать нельзя, чтобы юзер был без пароля.

Petya V4sechkin
09-03-2011, 12:34
allaq, приведите ошибки из журнала событий в соответствии с этими инструкциями (http://forum.oszone.net/showpost.php?p=580138#post580138).
Попробуйте создать новые учетки и запустить от их имени (для эксперимента).

allaq
09-03-2011, 19:36
А в журнале событий нет строчек, соответствующих этой ошибке. Учетки - попробую, но вряд ли поможет.

Petya V4sechkin
09-03-2011, 20:18
А в журнале событий нет строчек
От источника Service Control Manager нет?

allaq
10-03-2011, 22:25
От источника Service Control Manager есть, но только сообщения об запуске и о запущенных службах. Ни одной проблемы или ошибки, и ничего, касающегося RUNAS.

allaq
10-03-2011, 23:25
Обычно, если эти же ярлыки из папки Автозагрузка запускать "ручками" - запускается нормально. Проблема именно с запуском программы при загрузке ОС.

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

Такое впечатление, что сама ОС при загрузке использует RUNAS для своих целей, и из-за этого такая беда.

Petya V4sechkin
11-03-2011, 14:57
allaq, на всякий случай примените твик реестра (http://oszone.net/5604)
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\seclogon]
"Description"="Позволяет запускать процессы от имени другого пользователя. Если эта служба остановлена, этот тип регистрации пользователя недоступен. Если эта служба отключена, то нельзя запустить другие службы, которые явно зависят от нее."
"DisplayName"="Вторичный вход в систему"
"ErrorControl"=dword:00000000
"ImagePath"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\
74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,\
00,76,00,63,00,68,00,6f,00,73,00,74,00,2e,00,65,00,78,00,65,00,20,00,2d,00,\
6b,00,20,00,6e,00,65,00,74,00,73,00,76,00,63,00,73,00,00,00
"Objectname"="LocalSystem"
"Start"=dword:00000002
"Type"=dword:00000120

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\seclogon\Parameters]
"ServiceDll"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,\
00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,\
73,00,65,00,63,00,6c,00,6f,00,67,00,6f,00,6e,00,2e,00,64,00,6c,00,6c,00,00,\
00
"ServiceMain"="SvcEntry_Seclogon"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\seclogon\Security]
"Security"=hex:01,00,14,80,90,00,00,00,9c,00,00,00,14,00,00,00,30,00,00,00,02,\
00,1c,00,01,00,00,00,02,80,14,00,ff,01,0f,00,01,01,00,00,00,00,00,01,00,00,\
00,00,02,00,60,00,04,00,00,00,00,00,14,00,8d,01,02,00,01,01,00,00,00,00,00,\
05,0b,00,00,00,00,00,18,00,9d,01,02,00,01,02,00,00,00,00,00,05,20,00,00,00,\
23,02,00,00,00,00,18,00,ff,01,0f,00,01,02,00,00,00,00,00,05,20,00,00,00,20,\
02,00,00,00,00,14,00,fd,01,02,00,01,01,00,00,00,00,00,05,12,00,00,00,01,01,\
00,00,00,00,00,05,12,00,00,00,01,01,00,00,00,00,00,05,12,00,00,00

и перезагрузитесь.
Еще попробуйте в батниках перед запуском Runas добавить:
net start seclogon
или паузу секунд на 30 (чтобы служба "Вторичный вход в систему" запустилась).
Пауза в пакетном файле (http://oszone.net/6160)

allaq
11-03-2011, 21:12
Спасибо за идею!

Твик мне бы не помог, так как у меня в реестре то же самое. Не считая того, что в этом ключе есть еще один подключ - Enum:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\seclogon\Enum]
"0"="Root\\LEGACY_SECLOGON\\0000"
"Count"=dword:00000001
"NextInstance"=dword:00000001

А вот
net start seclogon
и
ping -n 10 127.0.0.1 > nul
похоже (пробовал немного раз) помогают оба. Они действую схоже: первая команда приводит к паузе примерно 10 секунд, после которой выдается сообщение, что служба уже запущена.

Правда, в идеале хотелось бы обойтись без такой паузы, ведь раньше все работало и так. Не понятно, что изменилось.

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

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

Petya V4sechkin
12-03-2011, 11:59
Правда, в идеале хотелось бы обойтись без такой паузы, ведь раньше все работало и так. Не понятно, что изменилось.
Службы запускаются независимо от автозагрузки (асинхронно).
Видимо, в результате каких-то изменений (установка/настройка/обновление/удаление софта или компонентов ОС) служба "Вторичный вход в систему" (необходимая для команды Runas) стала запускаться позже.

P. S. Отмечаю тему решенной (если что - отпишитесь).

allaq
12-03-2011, 12:48
Все не так просто. Если остановить службу вторичного входа (seclogon), а после этого попытаться запустить через RUNAS мою прогу - она без проблем запускается (правда, я попробовал не в автозагрузке). При этом, seclogon запускается автоматом. Видимо, ее запускает RUNAS. Попробую убрать seclogon из автозагружаемых служб - возможно, это решит проблему

allaq
12-03-2011, 15:02
Мое предположение подтвердилось - не обязательно делать явную или неявную паузу, можно просто выкинуть seclogon из автозагружаемых служб. Очередная ошибка программеров M$.

The_Immortal
09-04-2012, 12:05
Ребят, а кто может подсказать, в чем проблема:

runas /user:Администратор compmgmt.msc
Введите пароль для Администратор:
Попытка запуска compmgmt.msc от имени пользователя "COMP\Администратор" ...
ОШИБКА RUNAS: Не удается запустить - compmgmt.msc
193: compmgmt.msc не является приложением Win32.
А сам по себе compmgmt.msc запускается...

Iska
09-04-2012, 15:08
Попробуйте так:
runas /user:Администратор mmc.exe compmgmt.msc

The_Immortal
09-04-2012, 15:58
Iska, и так не получается - на это просто выводится хелп по команде RUNAS, что означает неверный синтаксис команды :(

Blast
09-04-2012, 16:01
Так попробуйте:runas /user:администратор "mmc compmgmt.msc"

The_Immortal
09-04-2012, 16:15
Blast, огромное спасибо! Наконец-то запустилось...

Blast
09-04-2012, 16:19
поздравляю :)

Iska
09-04-2012, 17:59
Blast, точно.

на это просто выводится хелп… »
… второй и третий примеры которого и показывают правильное применение:

Примеры:

runas /profile /env /user:mydomain\admin "mmc %windir%\system32\dsa.msc"
runas /env /user:user@domain.microsoft.com "notepad \"Мой файл.txt\""

На «прочитать» сил уже не осталось, да? Только на то, чтобы написать на форум, что «не работает»!?




© OSzone.net 2001-2012