Requete sur WSUS [SQL] - SQL/NoSQL - Programmation
MarshPosté le 19-04-2016 à 18:25:35
Bonjour, Je ne sais pas si on va pouvoir m'aider sur cette catégorie mais je tente ma chance. J'essaye actuellement de faire une requète SQL sur une base de données WSUS. Le but de ma requête est de me ressortir les informations suivantes :
Classification
MsrcSeverity
IsSuperseded
Title
UpdateId
KnowledgebaseArticles
SecurityBulletins
Approved
Ce qui doit normalement me donner comme résultat (Exemple): Security Updates Important True Security Update for SQL Server 2008 R2 Service Pack 2 (KB2977320) 285b2ea3-c342-47e9-97b0-65d68c13f3bd 2977320 MS14-044 NotApproved
Ma requête actuelle me permet d'extraire l'ensemble des champs dont j'ai besoin sauf 1 (IsSuperseded) qui est censé me dire si cette mise à jour est remplacé par une plus récente ou non. Il existe une cmdlets powershell Get-WsusUpdate me permettant d'avoir cette information, cependant cette commande est extremment longue, plus de 25 min d'execution ... c'est pour cela que je souhaite le faire directement par SQL.
Voici ma commande actuelle me permettant d'extraire tout les champs sauf le Superseded.
Code :
SELECT (SELECT lp.Title AS DefaultTitle
FROM dbo.tbCategory AS c
INNER JOIN tbUpdate AS u ON c.CategoryID = u.LocalUpdateID
INNER JOIN tbRevision AS r ON r.LocalUpdateID = u.LocalUpdateID AND r.IsLatestRevision = 1
INNER JOIN tbProperty AS p ON p.RevisionID = r.RevisionID
INNER JOIN tbLocalizedPropertyForRevision AS lpr ON lpr.RevisionID = r.RevisionID AND lpr.LanguageID = p.DefaultPropertiesLanguageID
INNER JOIN tbLocalizedProperty AS lp ON lp.LocalizedPropertyID = lpr.LocalizedPropertyID
WHERE (c.CategoryType = N'UpdateClassification') AND (u.UpdateID = uc.UpdateID)
) AS Classification,
p.MsrcSeverity, u.UpdateID, lp.Title AS DefaultTitle,(SELECT TOP (1) KBArticleID FROM tbKBArticleForRevision WHERE (RevisionID = r.RevisionID)) AS KnowledgebaseArticle, (SELECT TOP (1) SecurityBulletinID FROM tbSecurityBulletinForRevision WHERE (RevisionID = r.RevisionID)) AS SecurityBulletin,
CASE u.IsHidden
WHEN 0 THEN 'Approved'
WHEN 1 THEN 'NotApproved'
END AS IsDeclined
FROM tbUpdate AS u
INNER JOIN tbRevision AS r ON u.LocalUpdateID = r.LocalUpdateID
INNER JOIN tbProperty AS p ON r.RevisionID = p.RevisionID
INNER JOIN tbRevisionInCategory AS rc ON rc.RevisionID = r.RevisionID AND rc.Expanded = 0
INNER JOIN tbUpdate AS uc ON uc.LocalUpdateID = rc.CategoryID
INNER JOIN tbCategory AS c ON uc.LocalUpdateID = c.CategoryID AND c.CategoryType = N'UpdateClassification'
INNER JOIN tbLocalizedPropertyForRevision AS lpr ON lpr.RevisionID = r.RevisionID AND lpr.LanguageID = p.DefaultPropertiesLanguageID
INNER JOIN tbLocalizedProperty AS lp ON lp.LocalizedPropertyID = lpr.LocalizedPropertyID
Cela me donne un resultat de ce type : Critical Updates Unspecified EB2F3540-DBAB-45D0-BF7F-5822BBE81A55 Update for Background Intelligent Transfer Service (BITS) (KB883357) 883357 NULL Approved
Il me manque donc mon dernier champs qui est le IsSuperseded Quelqu'un pourrai-t'il m'aider à extraire ce fameux champs ?
Marsh Posté le 19-04-2016 à 18:25:35
Bonjour,
Je ne sais pas si on va pouvoir m'aider sur cette catégorie mais je tente ma chance.
J'essaye actuellement de faire une requète SQL sur une base de données WSUS.
Le but de ma requête est de me ressortir les informations suivantes :
Ce qui doit normalement me donner comme résultat (Exemple):
Security Updates
Important
True
Security Update for SQL Server 2008 R2 Service Pack 2 (KB2977320)
285b2ea3-c342-47e9-97b0-65d68c13f3bd
2977320
MS14-044
NotApproved
Ma requête actuelle me permet d'extraire l'ensemble des champs dont j'ai besoin sauf 1 (IsSuperseded) qui est censé me dire si cette mise à jour est remplacé par une plus récente ou non.
Il existe une cmdlets powershell Get-WsusUpdate me permettant d'avoir cette information, cependant cette commande est extremment longue, plus de 25 min d'execution ... c'est pour cela que je souhaite le faire directement par SQL.
Voici ma commande actuelle me permettant d'extraire tout les champs sauf le Superseded.
Cela me donne un resultat de ce type :
Critical Updates Unspecified EB2F3540-DBAB-45D0-BF7F-5822BBE81A55 Update for Background Intelligent Transfer Service (BITS) (KB883357) 883357 NULL Approved
Il me manque donc mon dernier champs qui est le IsSuperseded
Quelqu'un pourrai-t'il m'aider à extraire ce fameux champs ?
Merci
Message édité par Ekimmu le 19-04-2016 à 18:29:38