我搜索了遍及全球的互联网,寻找一种方法来查询WSUS数据库以查看需要在服务器上安装的更新数量。我在下面的博客中找到了部分答案,但是这个答案会假设如果更新正在等待批准,它仍然是服务器所需的(WSUS在其UI中也会这样做)。查询每个服务器所需更新的WSUS数据库
http://theboywonder.co.uk/2010/11/04/sql-query-for-wsus-3-needed-updates/
我搜索了遍及全球的互联网,寻找一种方法来查询WSUS数据库以查看需要在服务器上安装的更新数量。我在下面的博客中找到了部分答案,但是这个答案会假设如果更新正在等待批准,它仍然是服务器所需的(WSUS在其UI中也会这样做)。查询每个服务器所需更新的WSUS数据库
http://theboywonder.co.uk/2010/11/04/sql-query-for-wsus-3-needed-updates/
我希望这个解决方案是对别人有用。
SELECT left(tbComputerTarget.FullDomainName,30) as [Machine Name]
,count(tbComputerTarget.FullDomainName) as [# of Missing patches]
,tbComputerTarget.LastSyncTime as [Last Sync Time]
FROM tbUpdateStatusPerComputer INNER JOIN tbComputerTarget ON tbUpdateStatusPerComputer.TargetID =
tbComputerTarget.TargetID
WHERE (NOT (tbUpdateStatusPerComputer.SummarizationState IN (’1′, ’4′))) AND
tbUpdateStatusPerComputer.LocalUpdateID IN (SELECT LocalUpdateID FROM dbo.tbUpdate WHERE UpdateID IN
(SELECT UpdateID FROM PUBLIC_VIEWS.vUpdateApproval WHERE Action=’Install’))
GROUP BY tbComputerTarget.FullDomainName, tbComputerTarget.LastSyncTime
ORDER BY COUNT(*) DESC
我可以过滤更新名称
SELECT C.FULLDOMAINNAME AS COMPUTADOR,VU.DEFAULTTITLE AS ATUALIZAÇÃO,
'STATUS' = CASE
WHEN UP.SummarizationState = 1 THEN 'NÃO INSTALADO'
WHEN UP.SummarizationState = 2 THEN 'NÃO INSTALADO'
WHEN UP.SummarizationState = 3 THEN 'INSTALANDO'
WHEN UP.SummarizationState = 4 THEN 'INSTALADO'
WHEN UP.SummarizationState = 5 THEN 'FALHOU'
END
FROM TBCOMPUTERTARGET C
INNER JOIN tbUpdateStatusPerComputer UP ON C.TargetID = UP.TargetID
INNER JOIN tbUpdate U ON UP.LocalUpdateID = U.LocalUpdateID
INNER JOIN [PUBLIC_VIEWS].[vUpdate] VU ON U.UpdateID = VU.UpdateId
WHERE VU.DefaultTitle LIKE 'WINDOWS Internet Explorer 9 for Windows 7'
OR VU.DefaultTitle LIKE'Update for Microsoft Office 2010%'
这提供了没有好处我提出的问题。我正在寻找每个服务器的未决更新数量,而不是特定的更新。如果您想回答如何按更新过滤,最好创建一个单独的问题。 – vesuvious