Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Запуск команды после полной прогрузки службы.

Ответить
Настройки темы
Любой язык - Запуск команды после полной прогрузки службы.

Новый участник


Сообщения: 46
Благодарности: 0


Конфигурация

Профиль | Отправить PM | Цитировать


У меня уже мозг взрывается над следующей задачей:
Мне необходимо запускать программу с правами администратора в ограниченной учётной записи, причём из автозагрузки. Проблема в том, что служба «seclogon» не успевает прогрузиться и скрипт, в котором происходит запуск программы через RunAs не срабатывает.
Может есть команда для Bat, Vbs, Autoit, которая может исполняться в ограниченной учётной записи, которая бы отслеживала подгрузку службы seclogon и только после этого продолжала работу?
Рекомендация использовать паузу не оптимальна, хотелось бы запуск именно как только это становится возможным. И через планировщик тоже не вариант запускать т.к. он вырезан в той сборке Windows XP, которая используется.

Отправлено: 12:13, 23-07-2016

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата DjBoBo:
Проблема в том, что служба «seclogon» не успевает прогрузиться и скрипт, в котором происходит запуск программы »
Что мешает сделать в скрипте ожидание запуска службы или её непосредственный запуск?

Цитата DjBoBo:
через RunAs »
Никогда не делайте так. Это огромная дыра в безопасности. Если уж никак иначе нельзя — используйте что-нибудь наподобие AdmiLink & AdmiRun и т.п.

Отправлено: 12:58, 23-07-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 46
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вызов команды net start seclogon из под ограниченной учётной записи вываливается с ошибкой по причине нехватки прав, в учётной записи администратора команда отрабатывается и действительно ждёт запуска службы. Но мне необходима реализация именно из под ограниченной учётной записи.
А ожидание старта сервиса какой командой делается и будет ли оно работать в учётной записи с ограниченными правами? Я активно гуглил, но ничего такого так и не встретил.
И я использую не чисто RunAs, а приложение cpau, но эта утилита и ей подобные программы всё равно не будут работать, пока системная служба seclogon не будет запущена.
--- Дополнение---
Я тут в очередной раз поискал команду, которая бы ждала запуска службы, но такой команды вроде как нет. Но я подумал над скриптом, который бы мог работать в ограниченной учётной записи со следующим финтом:
--- Отслеживать в памяти раз в секунду имя запускаемой программы (program.exe)
------- её нет? Тогда запускаем команду cpau -dec -lwp -file C:\start-program.job (это контейнер с зашифрованными логином и паролем, а также расположением запускаемого файла для runas)
------------- программа (program.exe) не появилась через 3 секунды? Тогда убиваем процесс cpau.exe и вновь переходим к отслеживанию.
--- программа появилась в оперативной памяти? Завершаем работу скрипта.

Пояснение про 3 секунды после старта cpau: после запуска в случае успешной подгрузки службы «seclogon» практически моментально стартует заданную программу с правами админа, а если в момент запуска служба всё ещё недоступна, то она будет висеть и к моменту прогрузки службы выдаст ошибку.

Вот только моих любительских знаний не хватит для написания такого скрипта. Буду признателен за помощь .

Последний раз редактировалось DjBoBo, 24-07-2016 в 00:20.


Отправлено: 15:13, 23-07-2016 | #3


Ветеран


Сообщения: 544
Благодарности: 35

Профиль | Сайт | Отправить PM | Цитировать


Попробуй в цикле команду
Код: Выделить весь код
C:\Users\administrator>sc query seclogon

SERVICE_NAME: seclogon
        TYPE               : 20  WIN32_SHARE_PROCESS
        STATE              : 1  STOPPED
        WIN32_EXIT_CODE    : 1077  (0x435)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0
и проверяй STATE.
возможно она не требует админских прав.

-------
консольный клиент telegram для Windows: www.elapser.info


Отправлено: 19:44, 25-07-2016 | #4


Ветеран


Contributor


Сообщения: 2708
Благодарности: 1684

Профиль | Отправить PM | Цитировать


DjBoBo, "Тупо" реализовал Ваш алгоритм в Дополнении в vbs
Код: Выделить весь код
Prog1 = "program.exe"
Prog2 = "cpau -dec -lwp -file C:\start-program.job"

Time1 = 1 * 1000            ' Время 1 паузы (1 сек)
Time2 = 3 * 1000            ' Время 1 паузы (3 сек)

Set WMI = GetObject("winMgmts:")
Set WShell = CreateObject("WScript.Shell")

SQuery1 = "Select *From Win32_Process Where Name=" + """" + Prog1 + """"
SQuery2 = "Select *From Win32_Process Where Name=" + """" + Prog2 + """"

WScript.Sleep Time1

Do
    Set Proc2 = WMI.ExecQuery(SQuery2)

    For Each Process In Proc2       ' Убиваем вторую
        Process.Terminate
    Next

    Set Proc1 = WMI.ExecQuery(SQuery1)
    If Proc1.Count = 0 Then             ' Если нет первой программы
        Sending = WShell.Run(Prog2, 2, False)  ' Запускаем вторую
    Else
        Exit Do
    End If

    WScript.Sleep Time2
Loop
Обратите внимание, что программы указаны без путей. Если для запуска надо пути, их придётся добавить к именам программ при вызове в методе Run

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 10:25, 26-07-2016 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Запуск команды после полной прогрузки службы.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Загрузка - зависание ноутбука после полной переустановки системы simsa Microsoft Windows 7 6 17-12-2014 16:33
Система - Запуск скрипта после старта службы skeletor Программное обеспечение Windows 2 30-06-2013 14:15
HDD - после полной проверки диска пропали важнЧые файлы reddenya Накопители (SSD, HDD, USB Flash) 2 06-10-2010 13:08
Запуск скрипта после полной загрузки Windows Vagac AutoIt 5 19-03-2010 22:43
Автоматический запуск пакетного файла после полной загрузки ОС ChVL Автоматическая установка Windows 2000/XP/2003 8 11-05-2007 00:16




 
Переход