none
установка обновлений при помощи скрипта RRS feed

  • Вопрос

  • День добрый.

    вопрос вот такого характера:
    в сети есть сервер, на который админ, в определенную разшареную папку, складывает нужные обновления для Windows.
    задача такова: 
    1. сделать сценарий сверки установленых на компьютере обновлений и обновлений, доступных на сервере в сетевой папке
    2. установть недостающее обновления без учавствия пользователя, т.е. по сценарию завершения работы и без необходимлсти что либо жмакать при установке.

    компьютеры не в домене, да и настраивать обновление с сервера возможности нет (к сожалению)
    желательно реализовать в простом ЦМД. если не возможно - то раскажите как ПоШ поставить без жмаканья кнопок... ))

    заранее благодарен.
    4 июня 2009 г. 21:57

Ответы

  • Во-первых очень вам рекомендую всё таки поставить сервер WSUS. Благо ресурсов он требует совсем немного, и вполне можно поднять его даже на виртуальной машине.

    Установить необходимые обновления можно несколькими способами.

    Просто выложить все файлы обновлений в общую папку, и приложить батник вроде такого:
    for /f %%I in ('dir /b *.exe') do %%I /passive /norestart
    Таким образом попытаются установиться все обновления в папке. Те что уже установлены или не нужны - ставиться не будут, у них есть встроенный механизм проверки. Этот способ часто используют для создания образов новых систем, так как он достаточно медленный.

    Можно посмотреть список обновлений... например так (это уже PowerShell) и установить все остальные:
    $installed = systeminfo | ?{$_ -match '\[\d{2}\]: (KB\d{6})'}|%{$matches[1]}
    dir \\server\hofixes\ *.txt | ?{$installed -notcontains $_.name}|%{$_ /silent /norestart | out-null}
    Очевидно что этот метод ненадёжен. Не факт что все обновления отображаются в systeminfo, и тем более что они соответствуют формату KBxxxxxx

    Гораздо более надёжно узнать список необходимых для компьютера обновлений можно запросив сервер обновлений Microsoft (или WSUS). Пример того как это сделать я дал тут - http://xaegr.wordpress.com/2007/11/26/autoupdate-2/. Можно даже отталкиваясь от этого написать аналог WSUS'а, но на коленке :) Но IMHO смысла нет, так что сами ;)

    А PowerShell устанавливается точно так же как и остальные обновления =)
    \\server\hotfixes\WindowsXP-KB926139-v2-x86-ENU.exe /passive /norestart
    Для Vista и выше:
    wusa \\server\hotfixes\Windows6.0-KB928439-x64.msu /quiet /norestart
    Но конечно лучше через Windows Update / WSUS.


    AKA Xaegr, MCSE: Security, Messaging; MCITP: Server\Enterprise Administrator; Блог: http://xaegr.wordpress.com
    • Предложено в качестве ответа Vasily GusevModerator 5 июня 2009 г. 4:30
    • Помечено в качестве ответа Mirac 5 июня 2009 г. 6:39
    Модератор