There are different methods to check for installed updates. It is possible to check them directly from the computer or remotely from the command line. This article reviews all of these methods, which may be appropriate for a specific need.
1. Checking for updates from the control panel
The easiest way to check for installed updates is of course through the control panel. You will be able to access the history of all updates. To do this, click on Start, then Settings and click on the Update & Security button.
Then click View Update History.
This will give you access to all Windows updates, also drivers and unclassified updates, such as Edge.
2. Checking for installed updates via Powershell
Another method is to use Powershell. You can check for installed updates with the wmic qfe list command:
For a more compact rendering, you can also use the command line get-wmiobject -class win32_quickfixengineering.
This command can also be used to check for updates installed on a remote computer, using the following syntax: get-wmiobject -ComputerName ‘computer_name’ -class win32_quickfixengineering.
3. SCCM : Check for missing updates via SQL Server
It can be interesting to have the opposite approach, i.e. to check for missing updates on a specific computer. On SCCM there is a quick way to see this. Connect to your SQL database via SQL Management Studio. Find your database and right click on it, select New Query.
Copy and paste the query below replacing Computer_Name with the target machine:
SELECT CAST(DATEPART(yyyy,UI.DatePosted) AS varchar(255)) + '-' + RIGHT('0' + CAST(DATEPART(mm, UI.DatePosted) AS VARCHAR(255)), 2) AS 'Month Posted', UI.bulletinid [Bulletin ID],UI.articleid [Article ID], UI.Title, CASE WHEN CTM.ResourceID is not null THEN '*' ELSE '' END AS 'Targeted', CASE WHEN UCS.Status=2 THEN '*' ELSE '' END AS 'Is Required', UI.InfoURL AS 'Information', UI.dateposted AS 'Date Posted', Deadline=CDL.Deadline FROM V_UpdateComplianceStatus UCS JOIN v_UpdateInfo UI ON UI.CI_ID=UCS.CI_ID LEFT JOIN v_CITargetedMachines CTM ON CTM.CI_ID=UCS.CI_ID AND CTM.ResourceID = UCS.ResourceID INNER JOIN v_CICategories_All CCALL ON CCALL.CI_ID=UCS.CI_ID INNER JOIN v_CategoryInfo CINF ON CCALL.CategoryInstance_UniqueID = CINF.CategoryInstance_UniqueID AND CINF.CategoryTypeName='UpdateClassification' JOIN dbo.v_R_System AS vrs ON vrs.ResourceID = UCS.ResourceID OUTER apply ( SELECT Deadline=min(a.EnforcementDeadline) from v_CIAssignment a JOIN v_CIAssignmentToCI atc ON atc.AssignmentID=a.AssignmentID AND atc.CI_ID=UCS.CI_ID ) CDL WHERE vrs.Name0='Computer_Name' ORDER BY UI.DatePosted, UI.ArticleID
Conclusion
Apart from the classic Windows Update panel, there are many ways to check for installed updates. It is also possible to see which updates are not installed, which can be interesting, especially in the case of troubleshooting a remote computer. There may be several reasons why a PC cannot be updated.