Re: Critical Update listing available?
From: Torgeir Bakken \(MVP\) (Torgeir.Bakken-spam_at_hydro.com)
Date: 12/22/04
- Next message: John Rampling: "Are my updates installed?"
- Previous message: Phillip Windell: "Re: svchost.exe errors"
- In reply to: Jeff FTN: "Critical Update listing available?"
- Messages sorted by: [ date ] [ thread ]
Date: Wed, 22 Dec 2004 19:44:55 +0100
Jeff FTN wrote:
> I have my PC with XP setup to perform automatica updates for Critical Updates.
> The week of 12/6 - 12/10, my PC downloaded some critical updates. I was
> working on line at the time. These updates have now caused an access conflict
> with a VPN program, SECUREMOTE by CheckPoint, that my company uses to allow
> my VPN access.
> We want to remove the latest updates on my PC, but they are not identified
> by download date, that we can tell, in add/remove.
> Is there a way to identify Critical Updates by DATE they were downloaded
Hi
The VBScript below will list updates installed regardless if Windows
Update history exist or not, and if data exists, also the description,
the user that installed it and installation date.
It is easy to change the output format so it saves the data to a CSV
file you can import directly into a spread*** program.
The updates listing is obtained through the WMI class
Win32_QuickFixEngineering.
Put it in a text file and save it as e.g. ListHotfixes.vbs, to run it,
double click on it or start it like this:
wscript.exe "C:\Scripts\ListHotfixes.vbs"
(assuming you have put the script in the folder C:\Scripts\)
The VBScript will give this type of output:
------------------------------------------
Hotfix report date: 2004-10-19 18:01:19
OS version: Microsoft Windows XP Professional
SP version: Service Pack 2
OS language: English
Hotfixes Identified:
HotFixID: Q282784
Description: Windows XP Hotfix (SP1) [See Q282784 for more information]
InstalledBy:
InstallDate: (none found)
HotFixID: Q282784
Description: Windows XP Hotfix (SP1) [See Q282784 for more information]
InstalledBy: a117296
InstallDate: 10/18/2004
...
------------------------------------------
Script start:
'--------------------8<----------------------
'
' Description: Script that outputs some computer information
' and lists all installed hotfixes including installation date
'
' For Windows 2000 SP3/SP4, Windows XP (all versions) and
' Windows 2003 Server (all versions)
'
' Author: Torgeir Bakken
' Date: 2004-10-19
'
' Revisions
' 2004-12-09: Added support for the new IE update structure in registry
'
Const OpenAsASCII = 0
Const OverwriteIfExist = -1
Set oShell = CreateObject("WScript.Shell")
Set oFSO = CreateObject("Scripting.FileSystemObject")
sFile = oFSO.GetSpecialFolder(2).ShortPath & "\updates.txt"
Set fFile = oFSO.CreateTextFile(sFile, OverwriteIfExist, OpenAsASCII)
fFile.WriteLine
fFile.WriteLine "Hotfix report date: " & Now & vbCrLf
strComputer = "." ' use "." for local computer
Const HKLM = &H80000002
'On Error Resume Next
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colSettings = objWMIService.ExecQuery _
("Select * from Win32_OperatingSystem")
' get general info about the OS
' Caption value for different OS:
' Microsoft Windows 2000 ...
' Microsoft Windows XP ...
' Microsoft(R) Windows(R) Server 2003, ..... Edition
For Each objOperatingSystem in colSettings
strOSCaption = objOperatingSystem.Caption
Select Case True
Case InStr(1, strOSCaption, "windows 2000", vbTextCompare) > 0
strOS = "Windows 2000"
Case InStr(1, strOSCaption, "windows xp", vbTextCompare) > 0
strOS = "Windows XP"
Case InStr(1, strOSCaption, "windows(r) server 2003", vbTextCompare) > 0
strOS = "Windows Server 2003"
End Select
intOSLang = objOperatingSystem.OSLanguage
strOSLangHex = Right("000" & Hex(intOSLang), 4)
strOSServicePack = objOperatingSystem.CSDVersion
Next
Set objReg = GetObject("WinMgmts:{impersonationLevel=impersonate}!//" _
& strComputer & "/root/default:StdRegProv")
strOSLanguage = "Unknown" ' Init value
strKeyPath = "SOFTWARE\Classes\MIME\Database\Rfc1766"
strValueName = strOSLangHex
objReg.GetStringValue HKLM, strKeyPath, strValueName, strOSLanguage
' remove unnecessary stuff
arrOSLanguage = Split(strOSLanguage, ";")
strOSLanguage = arrOSLanguage(UBound(arrOSLanguage))
If Instr(strOSLanguage, "(") > 0 Then
arrOSLanguage = Split(strOSLanguage, "(")
strOSLanguage = Trim(arrOSLanguage(0))
End If
fFile.WriteLine "OS version: " & strOSCaption
fFile.WriteLine "SP version: " & strOSServicePack
fFile.WriteLine "OS language: " & strOSLanguage
' start enumeration of hotfixes
fFile.WriteLine vbCrLf & "Hotfixes Identified:" & vbCrLf
strRegBaseUpdOS = "SOFTWARE\Microsoft\Updates\" & strOS
strRegBaseUpdIE = "SOFTWARE\Microsoft\Updates\Internet Explorer 6\SP1\"
Set colItems = objWMIService.ExecQuery _
("Select * from Win32_QuickFixEngineering",,48)
For Each objItem in colItems
If objItem.HotFixID <> "File 1" Then
fFile.WriteLine "HotFixID: " & objItem.HotFixID
fFile.WriteLine "Description: " & objItem.Description
fFile.WriteLine "InstalledBy: " & objItem.InstalledBy
strInstallDate = Null ' init value
If InStr(1, objItem.HotFixID, "-IE6SP1-", vbTextCompare) > 0 Then
strRegKey = strRegBaseUpdIE & objItem.HotFixID
objReg.GetStringValue HKLM, strRegKey, _
"InstalledDate", strInstallDate
ElseIf objItem.ServicePackInEffect <> "" Then
strRegKey = strRegBaseUpdOS & "\" & objItem.ServicePackInEffect _
& "\" & objItem.HotFixID
objReg.GetStringValue HKLM, strRegKey, _
"InstalledDate", strInstallDate
End If
If IsNull(strInstallDate) Then
strInstallDate = "(none found)"
End If
fFile.WriteLine "InstallDate: " & strInstallDate
fFile.WriteLine ' blank line
End If
Next
fFile.Close
oShell.Run sFile
'--------------------8<----------------------
-- torgeir, Microsoft MVP Scripting and WMI, Porsgrunn Norway Administration scripting examples and an ONLINE version of the 1328 page Scripting Guide: http://www.microsoft.com/technet/scriptcenter/default.mspx
- Next message: John Rampling: "Are my updates installed?"
- Previous message: Phillip Windell: "Re: svchost.exe errors"
- In reply to: Jeff FTN: "Critical Update listing available?"
- Messages sorted by: [ date ] [ thread ]