KACE Product Support Question

Report showing the date the last time a computer had patches deployed

07/21/2014 3606 views
I'm looking for help creating a report for my KACE K1000 (v.6.0.101863) that would show a list of all the computers in my inventory and the date the last time patches were deployed to them.  Either that, or a report showing the number of how many patches each computer is missing.  I'm looking for a way to find out which machines aren't being patched regularly.

0 Comments   [ + ] Show comments


All Answers

Assuming that you can't use kace for windows updates like me, an easier option might be running a script that counts and/or gives you a list of what is installed. You could then create a custom inventory based on that file. Then you could run a report and sort by the number of patches installed or by looking for a recent patch.
Try something along these lines of this vb script.

'# SCRIPT.........: CountUpdates.vbs
'# VERSION........: 1.0
'# DATE...........: 02/21/2014
'# DESCRIPTION....: Counts all installed updates / hotfixes on PC in a text file
Option Explicit
'On Error Resume Next

Dim oShell, oFileSystem, oRunLog, oWMIService, colQuickFixes, oItem, oOSVersion
Dim iUpdateCount, idx
Dim strFileName, strLoggingPath, strLogFileAndPath, strPCName, strHotfixID, strLastHotfixID, strVersion
Dim strList, strListFileAndPath

'Get Version Number of OS to make sure that
Set oShell = CreateObject("WScript.Shell")
Set oOSVersion = oShell.exec("%comspec% /c ver")
strVersion = oOSVersion.stdout.readall

'Get PC Name
strPCName = oShell.ExpandEnvironmentStrings("%COMPUTERNAME%")

'Create file system object
strFileName = "CountUpdates.log"
strLoggingPath = "C:\Logs\"
Set oFileSystem = CreateObject("Scripting.FileSystemObject")

'Create Log Directory if it does not exist
If (NOT oFileSystem.FolderExists(strLoggingPath)) Then
End If

'Log File Path and Name
strLogFileAndPath = strLoggingPath & strFileName
'Create Logging File if it does not exist
If (oFileSystem.FileExists(strLogFileAndPath)) Then
End If
Set oRunLog = oFileSystem.OpenTextFile(strLogFileAndPath, 8, True)

'Create Logging File if it does not exist
Dim strListLog
Dim oListLog
strList = "List.log"
strListFileAndPath = strLoggingPath & strList
If (oFileSystem.FileExists(strListFileAndPath)) Then
End If
Set oListLog = oFileSystem.OpenTextFile(strListFileAndPath, 8, True)

Set oWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strPCName & "\root\cimv2")
Set colQuickFixes = oWMIService.ExecQuery("Select * from Win32_QuickFixEngineering")

iUpdateCount = 0
For Each oItem in colQuickFixes
strHotfixID = oItem.HotFixID
If (strHotfixID <> "File 1") Then
If (strLastHotfixID <> strHotfixID) Then
strLastHotfixID = strHotfixID
iUpdateCount = iUpdateCount + 1
End If
oListLog.WriteLine oItem.HotFixID
End If

oRunLog.WriteLine "Update Count: " & iUpdateCount

Answered 07/21/2014 by: htomlinson
Purple Belt

This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ