Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Установка через GPO определённой KB (943729). WSUS нет.

Ответить
Настройки темы
VBS/WSH/JS - Установка через GPO определённой KB (943729). WSUS нет.

Пользователь


Сообщения: 87
Благодарности: 4

Профиль | Сайт | Отправить PM | Цитировать


Доброго времени суток, коллеги.
Необходимо через GPO развернуть KB943729. WSUS в сети нет. В теории хотелось бы какой-нибудь скриптик, который бы запускался из GPO в startup-скрипте и проверял на наличие этого KB в системе. Если ОНО уже есть - ничего бы не делал дальше, а если его нет на каком-то компьютере - устанавливал бы эту KB'шку.

Или может кто подскажет какие-то другие варианты, как разворачивать в сети эту KB?

-------
С Уважением,
Пётр Ластенко.


Отправлено: 21:41, 29-06-2012

 

Пользователь


Сообщения: 116
Благодарности: 12

Профиль | Отправить PM | Цитировать


У меня работает такой универсальный вариант
Код: Выделить весь код
' --------------------------------------------- '
' ----- By Jakob H. Heidelberg 29-02-2008 ----- '
' ----- - - - - - - - - - - - - - - - - - ----- '
' -----     Install GP Preference CSEs    ----- '
' -----           Developed for:          ----- '
' ----- http://heidelbergit.blogspot.com  ----- '
' ----- - - - - - - - - - - - - - - - - - ----- '
' -----           version 1.01            ----- '
' -----    Last rev. date: 01-03-2008     ----- '
' --------------------------------------------- '
' Changes:
'---------
' v1.0 Basic functionality:
' - Developed to be combined with a Startup Script (or admin rights)
' - Check if the CSEs are installed already, using local WMI call
' - Check OS Version (Windows XP, Windows Server 2003, Windows Vista), using local WMI call
' - Check OS Architecture (32 or 64 bit), just checking for a folder as WMI call was kinda strange
' - Check OS Service Pack Level, using local WMI call
' - Check for GPP CSE Pre-requisite on XP/2003 systems, using local WMI call
' - Installation of GPP CSE Pre-reqs on XP/2003 systems
' - Handles install on Windows XP SP2/SP3 32-bit (EXE file)
' - Handles install on Windows XP 64-bit, any SP level (EXE file)
' - Handles install on Windows Server 2003 SP1/SP2 32-bit (EXE file)
' - Handles install on Windows Server 2003 64-bit, any SP level (EXE file)
' - Handles install on Windows Vista RTM/SP1 32-bit (MSU package)
' - Handles install on Windows Vista RTM/SP1 64-bit (MSU package)
'
'More info:
'----------
' 1) Place ALL GPP CSE and GPP CSE Pre-Req files in the same directory (strBasePath), eg. \\DC1\UPDATES\
' 2) Description of the Windows Update Stand-alone Installer (Wusa.exe) and of .msu files in Windows Vista:
'    http://support.microsoft.com/kb/934307/en-us
' 3) NB! You might need other language version for the XmlLite GPP CSE Pre-requisites, so watch out!

Option Explicit
On Error Resume Next

'The Group Policy Preference CSE HotfixID
Dim strCSEFixID : strCSEFixID ="943729"

'Path to main update share/folder - place the 4 GPP CSE and the 3 GPP CSE Pre-Req binaries here!
Dim strBasePath : strBasePath = "\\192.168.1.92\SoftInstall$\Update\KB943729\" 'NB! with trailing backslash!

'GPP CSE filename for: Windows XP 32-bit / Windows Server 2003 32-bit (MD5: dfa20e51141af67ec49d574428c38fb8)
'http://www.microsoft.com/downloads/details.aspx?FamilyID=e60b5c8f-d7dc-4b27-a261-247ce3f6c4f8&DisplayLang=en
'http://www.microsoft.com/downloads/details.aspx?FamilyID=bfe775f9-5c34-44d0-8a94-44e47db35add&DisplayLang=en
Dim strXP2K332CSE : strXP2K332CSE = "WindowsXP-KB943729-x86-RUS.exe"

'GPP CSE filename for: Windows XP 64-bit / Windows Server 2003 64-bit (MD5: 5803c6f4b4bc02ea29d934d839e0a66f)
'http://www.microsoft.com/downloads/details.aspx?FamilyID=b10a7af4-8bee-4adc-8bbe-9949df77a3cf&DisplayLang=en
'http://www.microsoft.com/downloads/details.aspx?FamilyID=29e83503-7686-49f3-b42d-8e5ed23d5d79&DisplayLang=en
Dim strXP2K364CSE : strXP2K364CSE = "WindowsXP-KB943729-x64-RUS.exe"

'GPP CSE filename for: Windows Vista 32-bit (MD5: 22a42082473b3c8bc3b22ad095c6c31f)
'http://www.microsoft.com/downloads/details.aspx?FamilyID=ab60dc87-884c-46d5-82cd-f3c299dac7cc&DisplayLang=en
Dim strVIS32CSE : strVIS32CSE = "Windows6.0-KB943729-x86.msu"

'GPP CSE filename for: Windows Vista 64-bit (MD5: d92e107cdffa51d5943f1861f28178e7)
'http://www.microsoft.com/downloads/details.aspx?FamilyID=b10a7af4-8bee-4adc-8bbe-9949df77a3cf&DisplayLang=en
Dim strVIS64CSE : strVIS64CSE = "Windows6.0-KB943729-x64.msu"

'----------------------------------------------------------------------'
'PRE-REQUISITES - 'http://support.microsoft.com/default.aspx/kb/914783 '
'----------------------------------------------------------------------'
'GPP PreReq KB914783 filename for: Windows XP SP2 32-bit = KB915865  (MD5: 656657aeaea02d3a1069d52c4593e6e8)
'http://www.microsoft.com/downloads/details.aspx?FamilyId=D7B5DC81-AD14-4DE2-8AD5-8C4A9AAB5992&displaylang=en
Dim strXP32PRE   : strXP32PRE   = "WindowsXP-KB915865-v11-x86-RUS.exe"
Dim strPREFixID1 : strPREFixID1 = "915865"

'GPP PreReq KB914783 filename for: Windows Server 2003 SP1 32-bit = KB914783 (MD5: 830c6163fa113b782aa3cd9eb54ee549)
'http://www.microsoft.com/downloads/details.aspx?FamilyId=611D1FDE-C8D0-4D80-96DA-B5B20F7BA159&displaylang=en
Dim str2K332PRE  : str2K332PRE  = "WindowsServer2003-KB914783-v10-x86-RUS.exe"
Dim strPREFixID2 : strPREFixID2 = "914783"

'GPP PreReq KB914783 filename for: Windows XP 64-bit = KB915865 (MD5: 7fd3fc3fb21566fd97750d98e41bca0d)
'http://www.microsoft.com/downloads/details.aspx?FamilyId=C7CB26E9-68F1-4F80-B231-79D044431E8E&displaylang=en
Dim strPREFixID3  : strPREFixID3  = "915865" 'exact same install file as Windows Server 2003 SP1 64-bit (KB914783)

'GPP PreReq KB914783 filename for: Windows Server 2003 SP1 64-bit = KB914783 (MD5: 7fd3fc3fb21566fd97750d98e41bca0d)
'http://www.microsoft.com/downloads/details.aspx?FamilyId=406777E6-79DA-4414-A329-22A435A95D9D&displaylang=en
Dim strXP2K364PRE : strXP2K364PRE = "WindowsServer2003.WindowsXP-KB914783-v10-x64-ENU.exe"
Dim strPREFixID4  : strPREFixID4  = "914783"

'Commandline stuff																									
Dim strArgusMSU : strArgusMSU  = "/quiet /norestart"
Dim strArgusEXE : strArgusEXE  = "/quiet /passive /norestart"
Dim strArgusLOG : strArgusLOG = "/log:\\192.168.1.92\SoftInstall$\Update\KB943729\Logs\KB943729_" & WScript.CreateObject("WScript.Network").ComputerName & ".log"

Dim objFso : Set objFso = CreateObject("Scripting.FileSystemObject")

'Get SYSTEM folder, eg. C:\Windows\System32
Dim strSys : strSys = objFSO.GetSpecialFolder(1)

'Is the GPP CSE already installed? Is so, then just quit!
If IsThisHotfixInstalled(strCSEFixID) Then WScript.Quit(0)

'Is this a 64-bit windows OS?
'Get WINDOWS folder, eg. C:\Windows
Dim strWin : strWin = objFSO.GetSpecialFolder(0)
Dim strBit : strBit = "32"
If objFso.FolderExists(strWin & "\SysWOW64") Then strBit = "64"

Set objFso = Nothing

'Get OS version and Service Pack level using WMI
Dim strCSDVers, strCaption
Dim objWMI : Set objWMI = GetObject("winmgmts:\\.\root\CIMV2")
Dim colItm : Set colItm = objWMI.ExecQuery("SELECT * FROM Win32_OperatingSystem")
Dim objItm
For Each objItm In colItm
  strCSDVers = objItm.CSDVersion
  strCaption = objItm.Caption
Next
Set objWMI = Nothing
Set colItm = Nothing

'GET OS ARCHITECTURE
If Instr(strBit, "32") Then
   strBit = "32"
ElseIf Instr(strBit, "64") Then
   strBit = "64"
Else
   'We don't know what OS architecture it is, let's beat it...
   WScript.Quit()
End If

'GET SP LEVEL (number only)
If strCSDVers <> "" Then
   strCSDVers = Right(strCSDVers,1)
End If

Dim strCommandLineCSE, strCommandLinePRE
'GET OS VERSION (CAPTION) and Build CommandLine
If Instr(UCASE(strCaption), "VISTA") Then
  'We are dealing with a Windows Vista system
  If strBit = "32" Then
    'This is 32 bit (no SP level check)
    'No pre-req check for Windows Vista
    strCommandLineCSE = strSys & "\WUSA.EXE " & Chr(34) & strBasePath & strVIS32CSE & Chr(34) & " " & strArgusMSU & " " & strArgusLOG
  ElseIf strBit = "64" Then
    'This is 64 bit (no SP level check)
    'No pre-req check for Windows Vista
    strCommandLineCSE = strSys & "\WUSA.EXE " & Chr(34) & strBasePath & strVIS64CSE & Chr(34) & " " & strArgusMSU  & " " & strArgusLOG
  End If
  
ElseIf Instr(UCASE(strCaption), "XP") Then
  'We are dealing with a Windows XP system
  If (strCSDVers = "2" Or strCSDVers = "3")And strBit = "32" Then
    'This is SP2 or SP3 - 32 bit
    'Install pre-req if it's not already there
    If Not IsThisHotfixInstalled(strPREFixID1) Then strCommandLinePRE = Chr(34) & strBasePath & strXP32PRE & Chr(34) & " " & strArgusEXE  & " " & strArgusLOG
    strCommandLineCSE = Chr(34) & strBasePath & strXP2K332CSE & Chr(34) & " " & strArgusEXE & " " & strArgusLOG
  ElseIf strBit = "64" Then
    'This is 64 bit (no SP level check)
    'Install pre-req if it's not already there
    If Not IsThisHotfixInstalled(strPREFixID3) Then strCommandLinePRE = Chr(34) & strBasePath & strXP2K364PRE & Chr(34) & " " & strArgusEXE & " " & strArgusLOG
    strCommandLineCSE = Chr(34) & strBasePath & strXP2K364CSE & Chr(34) & " " & strArgusEXE & " " & strArgusLOG
  End If

ElseIf Instr(strCaption, "2003") Then
  'We are dealing with a Windows Server 2003 system
  If (strCSDVers = "1" Or strCSDVers = "2") And strBit = "32" Then
    'This is SP1 or SP2 - 32 bit
    'Install pre-req if it's not already there
    If Not IsThisHotfixInstalled(strPREFixID2) Then strCommandLinePRE = Chr(34) & strBasePath & str2K332PRE & Chr(34) & " " & strArgusEXE & " " & strArgusLOG
    strCommandLineCSE = Chr(34) & strBasePath & strXP2K332CSE & Chr(34) & " " & strArgusEXE & " " & strArgusLOG
  ElseIf strBit = "64" Then
    'This is 64 bit (no SP level check)
    'Install pre-req if it's not already there
    If Not IsThisHotfixInstalled(strPREFixID4) Then strCommandLinePRE = Chr(34) & strBasePath & strXP2K364PRE & Chr(34) & " " & strArgusEXE
    strCommandLineCSE = Chr(34) & strBasePath & strXP2K364CSE & Chr(34) & " " & strArgusEXE
  End If
Else
  'It's some other OS, let's beat it...
  Wscript.Quit()
End If

'Install GPP CSE Pre-req if strCommandLinePRE is defined
If strCommandLinePRE <> "" Then
  ExecuteThis(strCommandLinePRE)
End If

'Install GPP CSE if strCommandLineCSE is defined
If strCommandLineCSE <> "" Then
  ExecuteThis(strCommandLineCSE)
End If

Function ExecuteThis(FULLSTRING)
  Dim objShell : Set objShell = CreateObject("Wscript.Shell")
  ExecuteThis = objShell.Run(FULLSTRING,,1)
  Set objShell = Nothing
End Function

Function IsThisHotfixInstalled(KBNUMBER)
   Dim objWMI : Set objWMI = GetObject("winmgmts:\\.\root\CIMV2")
   Dim colItm : Set colItm = objWMI.ExecQuery("SELECT * FROM Win32_OperatingSystemQFE")
   IsThisHotfixInstalled = False
   Dim objItm
   For Each objItm In colItm
      If Instr(objItm.Dependent,KBNUMBER) Then
         IsThisHotfixInstalled = True
         Exit For
      End If
   Next
   Set colItm = Nothing
   Set objWMI = Nothing
End Function

Отправлено: 11:19, 31-05-2013 | #31



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Установка через GPO определённой KB (943729). WSUS нет.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] WSUS через GP в AD yurban WSUS 6 25-04-2012 08:30
2008 - [решено] установка WSUS Afon WSUS 1 14-02-2011 20:07
SCCM - Установка sccm и wsus AntiZero Другие серверные продукты 1 17-08-2010 12:45
Принудительная установка обновлений wsus win2k WSUS 1 19-10-2009 09:27
WSUS, Windows XP установка SP3 ss777 WSUS 10 25-06-2008 18:28




 
Переход