Войти

Показать полную графическую версию : WMI-фильтр для выборки компьютеров не имеющих определенной службы


colaloc
05-11-2014, 18:37
Всем привет.


Конфигурация компьютера - Политики - Конфигурация Windows - Сценарии - Автозагрузка - 1.bat
внутри bat: запуск инсталлятора софта, который (софт) ставится как служба

хочу применять политику только если службы нет ну или например если служба не в режиме автозапуска

Вопрос 1:
подскажите WMI-фильтр


Спасибо.

alef2474
05-11-2014, 20:12
http://eknigi.org/os_i_bd/7106-administrirovanie-windows-s-pomoshhyu-wmi-i-wmic.html
select * from Win32_Service where State = 'Stopped' And StartMode <> 'Disabled'
Caption=...
Фильтры медленно работают.

Iska
06-11-2014, 01:48
«State = 'Stopped'» лишнее, отсутствует «Name='Имя службы'» и, наконец, это не покрывает:
если службы нет »

alef2474
06-11-2014, 10:57
отсутствует «Name='Имя службы'» и, наконец, это не покрывает:
Цитата colaloc:
если службы нет » »

Я подумал вместо Name=... надо Caption=... (мне непонятно, когда-что применяют)
и это условие надо добавить к тем, что выше, чтобы как раз "покрыть" то, что службы нет. Stopped может и не лишнее, т.к. оно отражает случай, что служба есть, но почему-то не работает, может остановлена. Все зависит от логики применения инсталлятора у ТС, которая не ясна до конца.

Iska
06-11-2014, 11:31
Caption=... »
Я вовсе не видел, что Вы добавили про «Caption» — отвечал ночью в уже открытой вечером вкладке.

и это условие надо добавить к тем, что выше, чтобы как раз "покрыть" то, что службы нет. »
А как тут покроешь? WHERE "Name <> 'Имя'" всегда вернёт набор, даже тогда, когда служба уже присутствует.

cameron
06-11-2014, 12:52
AFAIK фильтр сработает только при ответе True, а в самом фильтре нельзя использовать инвертирование.
посему предлагаю подумать над применением через GPP, где можно через Targetting указать должный ответ WMI запроса (то есть FALSE в данном случае).
хотя, в общем-то, проще встроить проверку в сам батник, или собрать MSI пакет с проверкой (тут на вкус и цвет).

Iska
06-11-2014, 15:57
Вооот… Я же помню, что было здесь ранее нечто подобное на примере схожей темы — установки конкретного обновления только на те машины, на которых оно ещё не установлено. И тоже предлагался обходной путь (возможно — тот же самый).

cameron
06-11-2014, 16:17
Вооот… Я же помню, что было здесь ранее нечто подобное на примере схожей темы — установки конкретного обновления только на те машины, на которых оно ещё не установлено »
точно ;)

colaloc
07-11-2014, 12:28
спасибо всем за ответы

1.
перед тем как задавать вопрос я поизучал ответы в интернете
вот кстати та тема про обновление про которую вы вспомнили:
http://forum.oszone.net/post-1786820.html
она просто 11 года, я подумал может что изменилось и придумали таки решение

2.
для gpp на xp надо cse - не установлен

3.
собирать msi ради одной строчки - не хочется

4.
в батнике проверка есть, но все таки стартовать батник всегда - не есть хорошо

Так
и если останавливаться на решении с проверкой в батнике

уточняющий вопрос:
что будет происходить раньше: отработка бат или запуск службы?

Iska
07-11-2014, 17:00
вот кстати та тема про обновление про которую вы вспомнили:
http://forum.oszone.net/post-1786820.html »
Она самая ;).




© OSzone.net 2001-2012