Войти

Показать полную графическую версию : [решено] Фильтр отсутствия установленной программы


iMirRor
08-06-2011, 17:15
Необходимо было создать 2 WMI-фильтра для управлениями групповыми политиками средствами WQL
1) Выбрать компьютеры с установленным Office любой версии. Тут все получилось SELECT * FROM Win32_Product WHERE Name LIKE "Microsoft Office%"
2) Выбрать те компьютеры, где MS Office не установлен, т.е. обратный первому. Просто вставить NOT перед LIKE не получилось. Можете помочь с написанием данного скрипта.

p.s. Еще столкнулся с проблемой определения компьютеров с 32-битной ОС. В 7-ке есть параметр "OSArchitecture", но в XP его нет и крипт вызывает ошибку.

Kazun
08-06-2011, 17:40
1) SELECT * FROM Win32_Product WHERE NOT Name LIKE "Microsoft Office%"
2) Для Xp -
x86 - SELECT * FROM Win32_OperatingSystem WHERE Caption='Microsoft Windows XP professional'
x64 - SELECT * FROM Win32_OperatingSystem WHERE Caption='Microsoft(R) Windows(R) XP professional x64 edition'

iMirRor
08-06-2011, 17:59
1) Запрос выполняется, но при этом выводится все ПО, которое не относится к MS Office, а необходимо, чтобы он возращал NULL при этом.
2) Необходимо учитывать Windows 2000, Windows Vista и Windows 7, которые могут быть 32-разрядными. Пока напрашивается перечисление через OR всех Caption, но это не красивое решение.

Kazun
08-06-2011, 18:02
Для 2000 можно сделать,тот же фильтр что и для XP. А начиная с Vista можно использовать OSArchitecture.

iMirRor
08-06-2011, 18:08
Как в одном фильтре учесть все системы, ведь в групповой политике можно указать лишь один фильтр?

cameron
08-06-2011, 22:12
я бы попробовала так:
SELECT * FROM Win32_Product WHERE Name LIKE "Microsoft Office%" IS NULL
или так:
SELECT NULL FROM Win32_product WHERE Name LIKE "Microsoft Office%"
Необходимо учитывать Windows 2000 »
win2k не работает с WMI Filters.
p.s. Еще столкнулся с проблемой определения компьютеров с 32-битной ОС. В 7-ке есть параметр "OSArchitecture", но в XP его нет и крипт вызывает ошибку. »
SELECT * FROM Win32_ComputerSystem WHERE SystemType="x64-based PC"
SELECT * FROM Win32_ComputerSystem WHERE SystemType="x86-based PC"
на ХР отрабатывает.

iMirRor
09-06-2011, 08:36
В wbemtest первые запросы дают ошибку, а за определение битности - спасибо, работает.

cameron
09-06-2011, 15:51
SELECT * FROM Win32_Product WHERE Caption <>"Microsoft Office%"
а так?

iMirRor
09-06-2011, 18:30
Скрипт работает, но он выводит все установленные программы, которые не совпадают с "Microsoft Office%". А необходимо при наличии хотя бы одной записи об офисе возращать NULL (или FALSE) и, соответсвенно, не NULL при отсутствии записей о установленном MS Office. Просто нужно, чтобы групповая политика выполнилась для той группы компьютеров, где не установлен MS Office. Жаль, что нельзя Not применить к самому фильтру и не работает функция, возвращающая количество записей.

cameron
09-06-2011, 22:18
ошибка

iMirRor
11-06-2011, 15:33
Поскольку уперся в тупик, решил пойти другим путем. Можно ли через WQL узнать, входит ли компьютер в определенную группу в домене?

amel27
11-06-2011, 15:35
iMirRor, политика применяется если найден хотя бы один экземпляр объекта, значит фильтр должен что-то находить и при отсутствии ПО. Лобовое решение - создание своих (пользовательских) классов/объектов на ВСЕХ компьютерах домена (например, свой экземпляр для каждой конкретной программы). WQL-запрос атрибута таких объектов позволит определить состояние установки конкретного ПО. Объекты могут создаваться скриптом вручную, через политики или распространяться через инфраструктуру инвентаризации оборудования SMS/SCOM.

пример реализации таких объектов с присвоением атрибутам значений параметров реестра:
Using WMI filters with Registry values (http://grouppolicy.editme.com/WMIFilters)

Если единиц такого ПО немного, думаю практичней будет использовать обычные переменные окружения, заполнив их требуемым значением через скрипт автозагрузки компьютера, что-нибудь типа: IsMsOfficeInstalled=True/False
MSOfficeVersion=0/10/11/..В WMI-фильтре указывать WQL-запрос класса Win32_Environment

amel27
11-06-2011, 16:07
входит ли компьютер в определенную группу в домене?»это вроде уже другая песня - Security Filtering (фильтры безопасности) (http://www.oszone.net/1261/)




© OSzone.net 2001-2012