Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows NT/2000/2003 (http://forum.oszone.net/forumdisplay.php?f=5)
-   -   WMI-фильтр для выборки компьютеров не имеющих определенного обновления (http://forum.oszone.net/showthread.php?t=219455)

GhOsT_MZ 01-11-2011 14:34 1786474

WMI-фильтр для выборки компьютеров не имеющих определенного обновления
 
Доброго времени суток!
Встала задача развернуть одно обновление, но так как WSUS пока не используется, а времени на это не много, то решил воспользоваться групповыми политиками. Чтобы не нагружать систему при каждом запуске появилось желание запрещать эту групповую политику для компьютера с уже установленным обновлением, для чего может подойти WMI-фильтр. Но тут встает вопрос - как его использовать?
Например, есть фильтр для выборки компьютеров имеющих определенное обновление:
Код:

SELECT * FROM Win32_QuickFixEngineering WHERE HotFixID="KBXXXXXXX"
Но как быть, если нужно выбрать компьютеры, которые не имеют этого обновления? Не подумав сначала сделал отрицание этого условия, на чем собственно и накололся...

Delirium 01-11-2011 16:23 1786581

Хм. А задачка действительно нетривиальна... Будь это простой SQL, решалась бы на раз, а т.к. мы не можем указать напрямую что то типа NOT CONTAINING 'KB*****' или сделать подзапрос в запросе, то, боюсь, одним запросом может не получиться.

ПОсмотри вот эту страницу, вдруг найдешь что интересного: http://www.codeproject.com/KB/system/WQLByExample.aspx#

GhOsT_MZ 01-11-2011 16:42 1786599

Цитата:

Цитата Delirium
боюсь, одним запросом может не получиться. »

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

Цитата:

Цитата Delirium
ПОсмотри вот эту страницу, вдруг найдешь что интересного: http://www.codeproject.com/KB/system/WQLByExample.aspx# »

Полезная информация, но по теме ничего не нашел, так что пока только в закладки...

Iska 01-11-2011 22:31 1786820

Мне тоже задавали такой вопрос. И я не нашёл ничего разумного, ибо тут нужен не фильтр включения, а фильтр исключения.

Так что — банальный WSH/PoSH скрипт на все машины, в котором уже проверяется тем же запросом, установлено ли данное обновление, або нет.

Delirium 02-11-2011 01:04 1786911

А с другой стороны, зачем проверять? Только для уменьшения нагрузки на клиента? Ну и пусть себе ставится на все машины подряд, если уже есть - пропустится(вроде бы).

GhOsT_MZ 02-11-2011 08:27 1786998

Это да, пусть ставится, если обновление небольшого объема...

cameron 02-11-2011 10:13 1787052

Цитата:

Цитата GhOsT_MZ
Но как быть, если нужно выбрать компьютеры, которые не имеют этого обновления? Не подумав сначала сделал отрицание этого условия, на чем собственно и накололся... »

Код:

SELECT *  FROM Win32_QuickFixEngineering where HotFixID='KB2570791' AND installedon = "null"
;)

P.S. вообще микрософт такой микрософт..
есть поле Status, но....оно пустое :durak:

Цитата:

Цитата GhOsT_MZ
но так как WSUS пока не используется, а времени на это не много »

Цитата:

Цитата GhOsT_MZ
14:34, Вчера »

за это время можно развернуть десяток WSUS'ов и настроить их как угодно ;)

GhOsT_MZ 02-11-2011 18:47 1787414

Цитата:

Цитата cameron
за это время можно развернуть десяток WSUS'ов и настроить их как угодно »

Теоретически можно, если находиться на работе, а не на повышении квалификации)
Насчет запроса, кажется он врядли будет работать, так как при невыполнении первого условия, которое не выполнится без установленного хотфикса, фильтр вернет ложь... если обновление будет установлено, то все равно фильтр вернет ложь, так как второе условие не выполнится - не может быть installedon = null у установленного обновления, если я ничего не путаю... то есть, фильтр при любом раскладе будет выдавать ложь...

cameron 02-11-2011 20:56 1787523

Цитата:

Цитата GhOsT_MZ
Насчет запроса, кажется он врядли будет работать, так как при невыполнении первого условия, которое не выполнится без установленного хотфикса, фильтр вернет ложь... если обновление будет установлено, то все равно фильтр вернет ложь, так как второе условие не выполнится - не может быть installedon = null у установленного обновления, если я ничего не путаю... то есть, фильтр при любом раскладе будет выдавать ложь... »

да, плохо проверила результат :(
запрос не верный.

zero55 02-11-2011 20:56 1787525

Скорее всего отрицание не заработает т.к. конструкция NOT LIKE тут не применима, но можно попробовать через стартап скрипт
wmic qfe | find "XXXXXX"
Если НЕТ то выполнить дальше, если ДА то выйти.

Кстати.
Если использовать GPE то можно добиться желаемого результата
http://www.ldap389.info/en/2010/08/0...not-kb2286198/


Время: 16:22.

Время: 16:22.
© OSzone.net 2001-