I wrote a program that allows for tracking the progress of a Windows computer being patched by KACE in real time. It does this by first querying the database to determine which patches are needed for the system and then parsing the pluginPatching.log file to determine which of those patches have actually been deployed.
The query to determine which patches are needed follows:
SELECT KBSYS.PATCHLINK_PATCH.TITLE,ORG1.PATCHLINK_MACHINE_STATUS.PATCHUID,
ORG1.PATCHLINK_MACHINE_STATUS.STATUS_DT,
KBSYS.PATCHLINK_PATCH.FILENAME
FROM ORG1.PATCHLINK_MACHINE_STATUS
JOIN KBSYS.PATCHLINK_PATCH on KBSYS.PATCHLINK_PATCH.UID = ORG1.PATCHLINK_MACHINE_STATUS.PATCHUID
JOIN ORG1.MACHINE on MACHINE.ID = ORG1.PATCHLINK_MACHINE_STATUS.MACHINE_ID
WHERE MACHINE.NAME = 'machinename'
and ORG1.PATCHLINK_MACHINE_STATUS.STATUS = 'NOTPATCHED'
The program also includes a function to determine which computers are actively patching right now:
SELECT T.TYPE, T.PHASE, MACHINE.NAME, K.CLIENT_CONNECTED, MACHINE.OS_NAME
FROM KBSYS.KONDUCTOR_TASK T JOIN MACHINE on T.KUID = MACHINE.KUID JOIN KBSYS.SMMP_CONNECTION K on K.KUID = MACHINE.KUID WHERE PHASE = 'deploying' and CLIENT_CONNECTED = 1;
Because the program accesses the administrative share of the target computer it must be run with an account that is an administrator on the target machine.
In order to use the program you will also need access to the MySQL database using the reporting user on the KBOX. Please refer to the K1000 administrators guide to setup this access.
You can download an archive from my website. After extracting the archive run setup.exe.
The source code for this program is available by contacting Chuck. It is written in C#.
I have tested the program on Windows 7 computers but it should be considered beta software. Please contact me if you experience issues.
Comments