Автор Тема: никак не могу разобраться как запустить скрипт как службу  (Прочитано 9274 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн YOgen [?]

  • Новичок
  • *
  • Сообщений: 58
  • Репутация: 5
  • Пол: Мужской
    • WallsFon.ru
    • Награды
  • Версия AutoIt: 3.3.12.0
vasykas  [?]
Цитировать
К примеру у меня 18 компов и ни в одном нет этих файлов (SRVANY.EXE INSTSRV.EXE)
А их не должно быть по сути, они входят в состав "Windows NT Resource Kit".
http://support.microsoft.com/kb/137890/ru
http://support.microsoft.com/kb/251192/ru (можно создать службу удаленно)

Русское сообщество AutoIt

Re: никак не могу разобраться как запустить скрипт как службу
« Ответ #15 Отправлен: Сентябрь 28, 2013, 21:19:45 »

Оффлайн Astel064 [?]

  • Осваивающий
  • **
  • Сообщений: 264
  • Репутация: 44
  • Пол: Мужской
  • Помог мой пост, ставь +!
    • Astel064
    • Награды
  • Версия AutoIt: 3.3.6.1
vasykas  [?]
Цитировать
К примеру у меня 18 компов и ни в одном нет этих файлов (SRVANY.EXE INSTSRV.EXE)возможно ли как нибудь обойтись без этих файлов, для запуска службы.Или как вариант создать службу и прописать в ветку:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\", "Shell", "REG_SZ", "explorer.exe " "файл службы")для запуска в месте с explorer.exe,прокатит ли? ( т.е запуститься)

Прокатить то прокатит, но это уже не то, представьте, если вам нужно запустить 20 служб, это надо прописывать 20 путей после explorer'a? А если каждый программист будет запускать так службы, то это какая помойка будет в шелле? :)


Добавлено: Сентябрь 29, 2013, 09:09:42
Хм, как говорится "век живи - век учись" :)
Я еще раз несколько подправил ту самую UDF, которую я выкладывал выше.
Мне стало понятно назначение (и использование) функции _Service_init(), она то как раз и возвращает диспетчеру управления ответ о успешном запуске.
Только есть 1 минус - к примеру, имеется такой скрипт:
Код: AutoIt [Выделить]
  1. MsgBox(64," ","1")
  2. MsgBox(64," ","2")
  3. MsgBox(64," ","3")
  4. _Service_init("Мой сервис", "_MyServiceFunc")
  5. MsgBox(64," ","4")
  6. MsgBox(64," ","5")
  7. _MyServiceFunc()
  8.  
  9. Func _MyServiceFunc()
  10. MsgBox(64," ","MyServiceFunc")
  11.  
  12. MsgBox(64," ","6")
  13.  


Если скрипт запущен системой, как сервис, то будут выполнены строки: 1, 2, 3, 4, 9, 10, 11 (5, 6 и 7, 13 - будут пропущены)
Если скрипт запущен пользователем, не как сервис, то будут выполнены все строки. Так-что вот такая-вот фигня  :think:
« Последнее редактирование: Сентябрь 29, 2013, 09:09:42 от Astel064, Причина: Объединение сообщений »

Оффлайн firex [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 943
  • Репутация: 203
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Astel064
Используй PSExec. (как установишь его, используй в шапке своего скрипта подобный код).

Код: AutoIt [Выделить]
If $CmdLine[0] = 1 And $CmdLine[1] = '-ok' Then
    ;Okay, this is System
ElseIf @Compiled Then
    Local $_sDir = @ScriptDir
    RunWait( $_sDir & '\PSExec.exe -s -i -d "' & @ScriptFullPath & '" -ok', $_sDir, @SW_HIDE)
    Exit 2 ;Okay, restart!
EndIf


Русское сообщество AutoIt

Re: никак не могу разобраться как запустить скрипт как службу
« Ответ #17 Отправлен: Сентябрь 29, 2013, 12:30:55 »

Оффлайн Astel064 [?]

  • Осваивающий
  • **
  • Сообщений: 264
  • Репутация: 44
  • Пол: Мужской
  • Помог мой пост, ставь +!
    • Astel064
    • Награды
  • Версия AutoIt: 3.3.6.1
firex  [?]
Цитировать
Используй PSExec. (как установишь его, используй в шапке своего скрипта подобный код).

Если вопрос зашел о PsExec, то перед первым его запуском нужно сделать это:
Код: AutoIt [Выделить]
RegWrite ( "HKEY_CURRENT_USER\Software\Sysinternals\PsExec", "EulaAccepted", "REG_DWORD", "1" )

иначе он будет запущен, отобразит окно лицензии, а так-как он запущен с параметром @SW_HIDE - он ничего не запустит и просто будет висеть в процессах. Запись в реестр нужно производить 1 раз для каждого пользователя (замена HKCU на HKLM не поможет).

Я не поддерживаю идею с PSExec, т.к. нужно везде таскать его с собой, да и смысл от него, если нужен сервис, а не просто запуск от имени системы (или другого юзера)... Да, и если ресурс Admin$ (\\127.0.0.1\Admin$) по какой-либо причине не будет доступен (а их может быть куча) - PSExec будет бесполезен...

Русское сообщество AutoIt

Re: никак не могу разобраться как запустить скрипт как службу
« Ответ #18 Отправлен: Сентябрь 29, 2013, 21:22:46 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
3 Ответов
3897 Просмотров
Последний ответ Февраль 17, 2010, 18:58:11
от edyapd
7 Ответов
8029 Просмотров
Последний ответ Май 21, 2010, 15:14:14
от CreatoR
3 Ответов
3005 Просмотров
Последний ответ Ноябрь 23, 2012, 11:04:50
от C2H5OH
1 Ответов
1008 Просмотров
Последний ответ Июль 30, 2014, 21:02:40
от sasha-ld
3 Ответов
1678 Просмотров
Последний ответ Август 23, 2015, 21:39:04
от Yashied
6 Ответов
2144 Просмотров
Последний ответ Сентябрь 05, 2015, 09:14:50
от boriss
1 Ответов
765 Просмотров
Последний ответ Октябрь 31, 2015, 19:11:02
от Yashied
2 Ответов
833 Просмотров
Последний ответ Октябрь 26, 2016, 11:26:56
от test55
0 Ответов
208 Просмотров
Последний ответ Апрель 18, 2018, 23:31:59
от Dellroc
3 Ответов
1896 Просмотров
Последний ответ Ноябрь 22, 2018, 21:02:06
от tuneup