![]() |
Установка через GPO определённой KB (943729). WSUS нет.
Доброго времени суток, коллеги.
Необходимо через GPO развернуть KB943729. WSUS в сети нет. В теории хотелось бы какой-нибудь скриптик, который бы запускался из GPO в startup-скрипте и проверял на наличие этого KB в системе. Если ОНО уже есть - ничего бы не делал дальше, а если его нет на каком-то компьютере - устанавливал бы эту KB'шку. Или может кто подскажет какие-то другие варианты, как разворачивать в сети эту KB? |
1. Проверьте как определяется это KB, будучи установленным.
Так: Код:
wmic.exe QFE WHERE "HotFixID='File 1' AND ServicePackInEffect = 'KB943729'" 2. Приведите имена файлов отсюда: Information about new Group Policy preferences in Windows Server 2008 в зависимости от Вашего перечня ОС и языков. |
1. Определяется так:
![]() 2. Это немного не понял - извините. В сети используются Windows XP, Vista, Windows Server 2003. Все 32-bit, все Русские. Разворачивать этот KB через GPO я уже научился: стартап-скриптом с ключём /quiet. Для каждой ОС будет (в теории) свой WMI фильтр. Сейчас такой фильтр есть пока только для Windows XP. Вот бы ещё проверочку сделать, чтобы при каждой загрузке не устанавливать :-) На самом деле, наверное, было бы классно иметь возможность обойтись без WMI фильров - только одним скриптом для всех. Чтобы скрипт сам проверял наличие и в случае отсутствия - сам ставил бы нужную KB в соответствии с ОС, платформой, языком :-) Но это я губу раскатал уже :-) |
Цитата:
P.S. Зачем задаваться излишними платформами и языками, ежели: Цитата:
|
Incognitus, вот, с учётом вышеизложенного Вами, примерный шаблон:
У компьютеров домена должен быть доступ на чтение к ресурсу «\\Server\Share$» и на запись — к ресурсу «\\Server\Logs$». Корректные имена файлов обновления подставьте сами. Скрипт задавать для исполнения с параметром «//b»: Код:
wscript.exe //b "\\server\gpo…\Script.vbs" |
Спасибо огромное! Скрипт офигенный, правда его работоспособность я ещё не проверил. Сейчас этим займусь. Подскажите, пожалуйста, если я буду использовать этот скрипт как стартап - аргумент "//b" надо указывать?
![]() Ещё вопрос уже не относящийся к моей конкретной проблеме, но по Вашему скрипту: возможна его реализация с учётом платформы (x86, x64), языка (Rus, Eng), ОС (Windows XP, Vista, 7, Windows Server 2003, 2003 R2, 2008, 2008 R2 и т.д.)? "И т.д." - в том плане, что я с удовольствием подписался бы на обновления и актуализацию этого замечательного скрипта. Ещё раз спасибо! |
Что-то не захотел работать у меня скрипт. Для простоты отладки выполнял тестирование локально на новой Windows XP Eng 32-bit.
Код выглядит Расположение файлов на компьютере и отображение запуска и проверки работы скрипта выглядит так: ![]() При этом лог выполнения запуска KB'шки упал в корень C:\, а не C:\Logs, куда должен был бы по идее и выглядит ![]() Все манипуляции выполнялись под локальным администратором. Прошу Вашей помощи в восстановлении работоспособности скрипта! |
Цитата:
Код:
wscript.exe //b "Install GPP Extension.vbs" Цитата:
Цитата:
|
Цитата:
Цитата:
|
Цитата:
Цитата:
Код:
… /log:""C:\Logs\" & WScript.CreateObject("WScript.Network").ComputerName & ".log""") = 0 … Цитата:
Код:
… Цитата:
Цитата:
Цитата:
|
Отлично! Всё заработало в локальной машине! Теперь буду тестировать работу в связке с GPO.
KB'шка запросила ещё ряд привилегий. Я прописал их по аналогии. Сейчас скрипт выглядит Ещё от себя Я изменил ключ /passive на /quiet - мне так больше подходит. Спасибо Вам большущее за Вашу компетентность и оперативность! Если у Вас есть желание и время развить этот код для работы с учётом платформы и языка - с удовольствием буду Вашим тестером. Уверен, что этот код будет полезен многим нашим коллегам. Решённой тему пока не отмечаю до окончательного тестирования. |
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
|
PIL123, посмотрите на этот код:
Здесь мы в начале скрипта перечисляем (по-хорошему, надо сие перечисление выносить во внешний ini/xml-файл) файлы обновлений соответственно версий, платформ и языка ОС. Основной вопрос, как обычно — правильно ли сии составляющие определяются. |
Цитата:
Попутно вот нашёл по этой теме: http://www.heidelbergit.dk/2008/03/h...g-startup.html - зарубежный опыт. А это: http://social.technet.microsoft.com/...5-6958d02c63c1 - отечественный. |
Iska, Ваш код отлично работает!!! Правда имел возможность потестить пока только на Windows XP x86 ENG. Позже постараюсь потестить на других ОС в более сложных условиях.
Я немного его адаптировал под себя и у меня он сейчас выглядит Эта, конкретная KB'шка не нужна для Windows 7, Windows Server 2008, Windows Server 2008 R2, поэтому из objDictionary я убрал упоминания о них для этого конкретного случая. А вообще, судя по Код:
strHotFixID = "File 1" Я не смог понять и разобраться для чего мне в коде для конкретной KB'шки, которой нет под Win 7, Win 2008, 2008R, вот эти строки. Код:
Case 2, 3 Верно ли я понимаю, что скрипт предполагает только одно место хранения для KB'шек? Код:
strPath2HotFix = "\\TestDC.Company.Local\Distributives\KB943729" Если я вообще не правильно понял Ваш скрипт и несу ерунду, объясните, пожалуйста, как правильно в теории должно быть. UPD: Кстати, вот содержимое лога. Может из него удастся как-то что-то улучшить |
Цитата:
Код:
.Add "Windows 7 x86 ENU", "" Я всё-таки думаю, удобнее будет вынести сие во внешний файл. Цитата:
Код:
strHotFixID Цитата:
Цитата:
Сейчас мне важнее другое: правильно ли определяется версия/платформа/язык для разных ОС. А я, например, совершенно не представляю, как обстоят дела с MUI — как там правильно определять язык ОС, какие языкозависимые обновления вообще надо ставить под ним — RUS или ENU. |
Цитата:
Цитата:
|
Сегодня запустил в рабочей среде скрипт. На Windows XP русской всё прошло хорошо без запинки, а вот на Windows Server 2003 R2 SP2 ставиться из скрипта не стало по каким-то причинам.
![]() Причём руками тот KB, который соответствует в коде Windows Server 2003 Код:
.Add "Windows Server 2003 x86 RUS", "WindowsServer2003-KB943729-x86-RUS.exe" Запустить руками скрипт сразу не догадался. Если нужно - запущу. Есть у Вас какие-нибудь идеи, как поправить код? P.S. Картинка кликабельная. |
Цитата:
|
Цитата:
|
Iska, :-( Вернитесь, пожалуйста, в мой топик...
|
Iska, я решил использовать Ваш скрипт для разворачивания в сети Internet Explorer'ов. Начал с того, что на своей домашней машине опробовал этот Ваш хитрый запрос:
![]() При этом вводил заведомо имеющиеся у меня KB'шки: ![]() В ответ на команду получал, что данный KB не установлен. Подскажите, что я делаю не так? Ну, и следом, подскажите, пожалуйста, как, используя Ваш хитрый запрос определить установлен ли Internet Explorer на компьютере? |
Цитата:
Цитата:
Код:
wmic.exe QFE get HotFixID, ServicePackInEffect Пара «HotFixID/ServicePackInEffect» однозначно идентифицируют установленное обновление в коллекции класса. И Вам надо для каждой конкретно взятой версии каждого обновления предварительно определить эти квалификаторы. Выполните такую команду: Код:
wmic.exe QFE get HotFixID, ServicePackInEffect | find.exe "KB2719985" Цитата:
|
Цитата:
Ввёл Ваши команды, но пары значений у меня не вывалилось почему-то :-( ![]() ![]() Подскажите, пожалуйста, как быть? |
Проверьте так:
Код:
wmic.exe QFE where "HotFixID='KB2719985' AND ServicePackInEffect=''" get HotFixID, ServicePackInEffect, Description Код:
strHotFixID = "KB2719985" |
|
Iska, Вы случайно не знаете какой HotFixID имеют IE 8 и IE9. Не знаю как их определить. Щас гуглю и в технете уже копаюсь, но пока безрезультатно. Может быть IE нужно определять как-то, используя какой-то другой WMI-запрос?
Тема уходит в сторону от темы топика - как считаете, может создать новый топик, посвящённый определению установленного/не установленного последнего IE для каждой отдельно взятой ОС? |
Цитата:
|
Нет - не кумулятивные обновления, а только IE. Я работаю у заказчика и, как часть работ, надо установить последний IE для каждой ОС - Для Seven - это IE9, для XP - IE8 и т.д. Отсюда желание развернуть эти вещи скриптом. А WSUS у заказчика нет - такой вот хреновый заказчик :-(
|
У меня работает такой универсальный вариант
Код:
' --------------------------------------------- ' |
Время: 18:49. |
Время: 18:49.
© OSzone.net 2001-