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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Проверка установленных обновлений. (http://forum.oszone.net/showthread.php?t=291102)

nokogerra 17-11-2014 09:28 2430609

Проверка установленных обновлений.
 
Доброго времени суток.
Была создана политика со startup-скриптом, устанавливающим KB943729 (CSE GPP для Windows XP). Необходимо проверить успешность установки, нашел несколько способов, но сработал только 1, может кто-то подскажет почему не работают другие.

1. Проверить test-path`ом существует ли папка "C:\WINDOWS\$NtUninstallKB943729$" на целевой машине, но я наткнулся на проблему - нужный kb установлен, но такой папки нет, соответственно способ такой не надежен. Кто-то может сказать почему искомой папки нет?
2. Проверить get-hotfix`ом по id ("KB943729"), но в списке выдается куча ID вида "file 1" и у всех пустой description. Я видел несколько тредов, где люди сталкивались с такой же проблемой, но так и не сказано почему такое происходит. В моем случае KB943729 нет в списке хотфиксов, так что видимо он подпадает под один из "file 1".
3. Рабочим вариантом для меня отказался
Код:

get-wmiobject -Class Win32_QuickFixEngineering -Filter "ServicePackInEffect='KB943729'" ...
здесь все понятно.

Спасибо заранее.

Iska 17-11-2014 12:30 2430686

Цитата:

Цитата nokogerra
почему искомой папки нет? »

а) установка производилась с параметром «/nobackup»; б) по каким-то причинам не удалось создать эту папку; в) АХЗ.

Цитата:

Цитата nokogerra
2. Проверить get-hotfix`ом по id ("KB943729"), но в списке выдается куча ID вида "file 1" и у всех пустой description. Я видел несколько тредов, где люди сталкивались с такой же проблемой, но так и не сказано почему такое происходит. В моем случае KB943729 нет в списке хотфиксов, так что видимо он подпадает под один из "file 1".

3. Рабочим вариантом для меня отказался
Код:

get-wmiobject -Class Win32_QuickFixEngineering -Filter "ServicePackInEffect='KB943729'" ...
»

Именно так. Отчего Microsoft решило подобным образом разнообразить жизнь системным администраторам (наверное, чтоб мёдом не казалась) — не знаю. Но суть в том, что для каждого обновления ключами экземпляра класса «Win32_QuickFixEngineering» в наборе является именно пара «HotFixID»+«ServicePackInEffect», причём само именование KBXXX (или иной отличительный признак) может присутствовать как в «HotFixID», так и в «ServicePackInEffect».

Насколько мне известно, выбранный Вами способ с использованием Wbem класса «Win32_QuickFixEngineering» является наиболее предпочтительным.

nokogerra 17-11-2014 13:29 2430724

Установка проводилась с /passive и /norestart и только.

По поводу отсутствия имени KB в ID при выводе get-hotfix понял, спасибо MS.

nokogerra 17-11-2014 14:21 2430751

По поводу отсутствия папки "C:\WINDOWS\$NtUninstallKB943729$" есть у кого-нибудь еще идеи?

Foreigner 17-11-2014 19:13 2430957

Цитата:

Цитата nokogerra
есть у кого-нибудь еще идеи? »

Достаточно почистить обновления и этих папок вообще не будет. Или через графический cleanmgr.exe или через консольный dism.exe:
Код:

dism /online /cleanup-image /analyzecomponentstore - анализ
dism /online /cleanup-image /startcomponentcleanup - чистка


nokogerra 18-11-2014 06:36 2431236

Доброго времени суток.
Спасибо за ответ, но честно говоря я не понял что значит "почистить". Буду откровенен: я слабо представляю процесс обновления за пределами GUI, кроме того, что обновления закачиваются в каталог %windir%\SoftwareDistribution\Download и потом оттуда почему-то не удаляются, т.е. что за папки аля $NtUninstallKB943729$ и что за логи обновлений в %windir% я не знаю. Можете объяснить на пальцах что значит "почистить", а лучше дать ссылку с "deepdive" по процессу обновления Windows, я честно искал, но внятного ничего не нашел кроме общих FAQ на майкрософт.
Спасибо заранее.


Время: 22:35.

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