Are you looking at client side querying rather than the returned status 
messages?

Here is some SQL for compliance on the server side:

DECLARE @RscID int;
SELECT @RscID = ResourceID FROM v_R_System WHERE ((Name0 = 'ComputerName') and 
(Active0 = 1));

SELECT catinfo2.CategoryInstanceName AS [UpdateClassification],ui.CI_ID AS 
[CIID],ui.BulletinID,ui.ArticleID,ui.Title,
Installed=(CASE WHEN css.Status=3 THEN '*' ELSE'' END),
IsRequired=(CASE WHEN css.Status = 2 THEN '*' ELSE '' END),ui.InfoURL AS 
[InformationURL]
FROM v_UpdateComplianceStatus css
JOIN v_UpdateInfo ui ON ui.CI_ID = css.CI_ID
JOIN v_CICategories_All catall ON catall.CI_ID = ui.CI_ID
JOIN v_CategoryInfo catinfo ON catall.CategoryInstance_UniqueID = 
catinfo.CategoryInstance_UniqueID AND catinfo.CategoryTypeName='Company'
JOIN v_CICategories_All catall2 ON catall2.CI_ID = ui.CI_ID
JOIN v_CategoryInfo catinfo2 ON catall2.CategoryInstance_UniqueID = 
catinfo2.CategoryInstance_UniqueID AND 
catinfo2.CategoryTypeName='UpdateClassification'
LEFT JOIN v_CITargetedMachines ctm ON ctm.CI_ID=css.CI_ID and ctm.ResourceID = 
@RscID
LEFT JOIN (SELECT atc.CI_ID, Deadline = MIN(a.EnforcementDeadline) FROM 
v_CIAssignment a
JOIN v_CIAssignmentToCI atc ON atc.AssignmentID = a.AssignmentID
GROUP BY atc.CI_ID) cdl ON cdl.CI_ID = css.CI_ID
WHERE  css.ResourceID = @RscID
AND ((css.Status=2) OR (css.Status=3))
AND (catinfo.CategoryInstanceName = 'Microsoft')
ORDER BY catinfo.CategoryInstanceName, catinfo2.CategoryInstanceName, 
ui.ArticleID

For client side try playing with these:

get-wmiobject -query "SELECT * FROM CCM_SoftwareUpdate" -namespace 
"ROOT\ccm\ClientSDK"
get-wmiobject -query "SELECT * FROM CCM_UpdateStatus" -namespace 
"root\ccm\SoftwareUpdates\UpdatesStore"


From: [email protected] [mailto:[email protected]] On 
Behalf Of David O'Brien
Sent: 16 October 2014 05:06
To: [email protected]
Subject: [mssms] Status of required deployments

Hi all,

Before I go and check in my lab and potentially reinvent the wheel, has anybody 
got a query at hand that can be executed on a ConfigMgr client and check if it 
has installed all required deployments?

In this case I am specifically talking about Software Updates, but I guess that 
doesn't matter.

I know I looked at something similar a while ago, but can't remember which WMI 
class I chose back then.

Background: I'm writing a workflow that puts a machine into a collection, the 
machine receives its new policies (software update deployments), installs them 
and after it has done that, I need to continue with other machines. That's why 
I need to find out at what time it's done installing everything.

Thanks,
David




Reply via email to