Configuration Manageri SQL-päringud WannaCrypti lunavaraga seotud KB-de jaoks.
Lihtsaim ja kõige üldisemalt soovitatav viis on juurutada Windowsis uusim CU 10 või Server 2016 süsteemid, juurutage uusim igakuine koond Windowsi-eelsesse versiooni 10 masinad, ja kasutage üldise vastavuse määramiseks sisseehitatud ConfigMgr vastavusaruandeid.
WannaCrypti rünnakute ametlik kliendijuhend: https://blogs.technet.microsoft.com/msrc/2017/05/12/customer-guidance-for-wannacrypt-attacks/
MS17-010 turvavärskendus: https://technet.microsoft.com/en-us/library/security/ms17-010.aspx
Enne Windowsi 10 masinad:
Windows 8.1 ja Server 2012 Päring tagastab R2 masinad, mis ei teata, et KB2919355 on installitud. Seda seetõttu, et hilisemate KB-de esitamiseks on vaja KB2919355. Niisiis, neid süsteeme võib pidada ohus ja need nõuavad täiendavat uurimist.
Windows Vista jaoks, Windows 7, Windows 8.1, Windows Server 2008 R2 SP1, Windows Server 2008 SP2, Windows Server 2012, ja Windows Server 2012 R2 päring allpool, tagastatakse need süsteemid, millel pole kumbagi märtsi, Paigaldatud aprilli või mai igakuised koondfailid -JA- are reporting the following specific ‘Security Only’ updates as ‘Required’:
Windows Vista and Server 2008 SP2: KB4012598
Windows 7 ja Server 2008 R2 SP1: KB4012212
Windows Server 2012: KB4012214
Windows Server 2012 R2 and Windows 8.1: KB4012213
-- For Windows 7, Server 2008 R2 SP1, Windows Server 2012, Server 2012 R2 and Windows 8.1, Windows Vista and Server 2008 SP2
-- This query lists machines that are reporting any of the 'Security Only' updates as 'Required'.
-- If any machine has either March, April or May Monthly Rollup installed, then they wouldn't report March 'Security Only' update as 'Required', but look for the Monthly updates anyway.
-- Also include any Windows 8.1 ja Server 2012 R2 machines which do not report ‘KB2919355’ as Installed.
DECLARE @MarchSecurityOnly TABLE (ArticleID NVARCHAR(20))
INSERT INTO @MarchSecurityOnly VALUES ('4012212')
INSERT INTO @MarchSecurityOnly VALUES ('4012213')
INSERT INTO @MarchSecurityOnly VALUES ('4012214')
INSERT INTO @MarchSecurityOnly VALUES ('4012598')
DECLARE @MarchMonthly TABLE (ArticleID NVARCHAR(20))
INSERT INTO @MarchMonthly VALUES ('4012215')
INSERT INTO @MarchMonthly VALUES ('4015549')
INSERT INTO @MarchMonthly VALUES ('4019264')
INSERT INTO @MarchMonthly VALUES ('4012216')
INSERT INTO @MarchMonthly VALUES ('4015550')
INSERT INTO @MarchMonthly VALUES ('4019215')
INSERT INTO @MarchMonthly VALUES ('4012217')
INSERT INTO @MarchMonthly VALUES ('4015551')
INSERT INTO @MarchMonthly VALUES ('4019216')
DECLARE @KB2919355 NVARCHAR(10) = '2919355'-- Eelnõu
VALI
RS.Nimi0,
UI.ArticleID kui artikli ID,
UI.BulletinID as BulletinID,
UI.Title kui pealkiri,
SN.StateDescription AS Osariik,
UCS.LastStatusCheckTime AS LastStateReceived,
UCS.LastStatusChangeTime AS LastStateChanged,
UI.CI_UniqueID AS UniqueUpdateID
FROM v_Update_ComplianceStatusReported UCS
LIITU V_UpdateInfo kasutajaliideses UCS.CI_ID = UI.CI_ID
JOIN v_R_System RS RS.ResourceType=5 JA RS.ResourceID = UCS.ResourceID
JOIN v_StateNames SN ON SN.TopicType=500 JA SN.StateID=2 JA SN.StateID = UCS.Status
KUS UI.ArticleID IN (VALI ARTIKLIID ANDMEST @MarchSecurityOnly)
JA RS.Nimi0 EI SISSE (
-- Igakuine on paigaldatud
VALI eraldiseisev RS.Nimi0
FROM v_Update_ComplianceStatusReported UCS
LIITU V_UpdateInfo kasutajaliideses UCS.CI_ID = UI.CI_ID
JOIN v_R_System RS RS.ResourceType=5 JA RS.ResourceID = UCS.ResourceID
JOIN v_StateNames SN ON SN.TopicType=500 JA SN.StateID=3 JA SN.StateID = UCS.Status
KUS UI.ArticleID IN (VALI ARTIKLIID JAOKS @March Monthly)
)
LIIT
-- Windows 8.1 ja Server 2012 R2 masinad, mis ei teata, et KB2919355 on installitud.
VALI
eristatav RS.Nimi0,
UI.ArticleID kui artikli ID,
UI.BulletinID as BulletinID,
'KB2919355' as Title,
'Update is not Installed' AS State,
NULL AS LastStateReceived,
NULL AS LastStateChanged,
'KB2919355' AS UniqueUpdateID
FROM v_Update_ComplianceStatusReported UCS
JOIN v_UpdateInfo UI ON UCS.CI_ID = UI.CI_ID
JOIN v_R_System RS ON RS.ResourceType=5 AND RS.ResourceID = UCS.ResourceID
JOIN v_StateNames SN ON SN.TopicType=500 AND SN.StateID = UCS.Status AND SN.StateID <> 3
JOIN v_GS_OPERATING_SYSTEM OS ON RS.ResourceID = OS.ResourceID AND OS.BuildNumber0 = '9600' -- Windows 8.1 ja Server 2012 R2
KUS UI.ArtikliID = @KB2919355
Windows 10 ja Server 2016
Windowsi jaoks 10 ja Server 2016 päringuid, seal on 2 stsenaariumid, mis võivad kehtida olenevalt keskkonna konfiguratsioonist pärast ConfigMgr-i asendatud värskenduste aegumist. Selle kohta lisateabe saamiseks, vaadake TechNeti järgureeglite jaotist ja seda.
Stsenaarium 1: Kliendid, kelle asendamise reegel EI OLE seatud väärtusele „Aegub kohe”:
Kui asendatud värskendused ei ole aegunud ja seetõttu on need ConfigMgr-is endiselt saadaval, saate Windowsi tuvastamiseks kasutada järgmist päringut 10 ja Windows Server 2016 süsteemid, kuhu pole installitud märtsikuu CU-d ega sellele järgnevat CU-d. Pange tähele, et märtsikuu CU andmete hindamiseks, kuude pikkuse ootamise enne värskenduse aegumist väärtus ConfigMgr-is peab olema seatud piisavalt kõrgele väärtusele, et märtsi värskendus ei oleks aegunud. Sama kaalutlus kehtib ka järgmiste värskenduste kohta. Kui see ei kehti teie keskkonna kohta, teave sisse Stsenaarium 2: Kliendid, kelle asendamise reegel on seatud väärtusele „Aegub kohe” (või mitte piisavalt kaua) saab proovida.
Järgmise Windowsi jaoks 10 ja Server 2016, allolev päring tagastab süsteemid, millel pole ühtegi järgmistest igakuistest CU-dest, vabastatakse märtsis või hiljem (kuni selle postituse kuupäevani), paigaldatud:
Win10 RTM: KB4012606, KB4019474, KB4015221, KB4016637
Win10 1511: KB4013198, KB4015219, KB4016636, KB4019473
Win10 1607/Server 2016: KB4013429, KB4015217, KB4015438, KB4016635, KB4019472
-- Windows 10 machines that do not have the March (or any of the superseding updates) paigaldatud, and could be 'at risk'.
-- These queries are OS dependent, since we are querying individual KB's, and need to compare those KB's against proper builds to prevent getting inaccurate results.
-- Windows 10 RTM
DECLARE @BuildNumberRTM INT = '10240'
DECLARE @MarchWin10 TABLE (ArticleID NVARCHAR(20))
INSERT INTO @MarchWin10 VALUES ('4012606') -- March Cumulative
INSERT INTO @MarchWin10 VALUES ('4019474')
INSERT INTO @MarchWin10 VALUES ('4015221')
INSERT INTO @MarchWin10 VALUES ('4016637')
SELECT RS.Name0, OS.BuildNumber0 FROM v_R_System RS
JOIN v_GS_OPERATING_SYSTEM OS ON RS.ResourceID = OS.ResourceID AND OS.BuildNumber0 = @BuildNumberRTM
WHERE RS.Name0 NOT IN (
VALI RS.Nimi0
FROM v_Update_ComplianceStatusReported UCS
LIITU V_UpdateInfo kasutajaliideses UCS.CI_ID = UI.CI_ID
JOIN v_R_System RS RS.ResourceType=5 JA RS.ResourceID = UCS.ResourceID
JOIN v_StateNames SN ON SN.TopicType=500 JA SN.StateID=3 JA SN.StateID = UCS.Status
LIITUGE v_GS_OPERATING_SYSTEM OS-iga OS-IS.ResourceID = RS.ResourceID JA OS.BuildNumber0 = @BuildNumberRTM
KUS UI.ArticleID IN (VALI ARTIKLIID KÄSITLUSEST @MarchWin10)
)
-- Windows 10 1511
DECLARE @BuildNumber1511 INT = '10586'
DECLARE @MarchWin101511 TABLE (ArticleID NVARCHAR(20))
SISESTAGE @MarchWin101511 VÄÄRTUSED ('4013198') -- Märts Kumulatiivne
SISESTAGE @MarchWin101511 VÄÄRTUSED ('4015219')
SISESTAGE @MarchWin101511 VÄÄRTUSED ('4016636')
SISESTAGE @MarchWin101511 VÄÄRTUSED ('4019473')
SELECT RS.Name0, OS.BuildNumber0 V_R_System RS-ist
LIITUMINE v_GS_OPERATING_SYSTEM OS-iga RS-is.ResourceID = OS.ResourceID JA OS.BuildNumber0 = @BuildNumber1511
KUS RS.Nimi0 POLE (
VALI RS.Nimi0
FROM v_Update_ComplianceStatusReported UCS
LIITU V_UpdateInfo kasutajaliideses UCS.CI_ID = UI.CI_ID
JOIN v_R_System RS RS.ResourceType=5 JA RS.ResourceID = UCS.ResourceID
JOIN v_StateNames SN ON SN.TopicType=500 JA SN.StateID=3 JA SN.StateID = UCS.Status
LIITUMINE v_GS_OPERATING_SYSTEM OS-iga OS-IS.ResourceID = RS.ResourceID JA OS.BuildNumber0 = @BuildNumber1511
KUS UI.ArticleID IN (VALI ARTIKLIID KÄSITLUSEST @MarchWin101511)
)
-- Windows 10 1607
DECLARE @BuildNumber1607 INT = '14393'
DECLARE @MarchWin101607 TABLE (ArticleID NVARCHAR(20))
SISESTAGE @MarchWin101607 VÄÄRTUSED ('4013429') -- Märts Kumulatiivne
SISESTAGE @MarchWin101607 VÄÄRTUSED ('4015217')
SISESTAGE @MarchWin101607 VÄÄRTUSED ('4015438')
SISESTAGE @MarchWin101607 VÄÄRTUSED ('4016635')
SISESTAGE @MarchWin101607 VÄÄRTUSED ('4019472')
SELECT RS.Name0, OS.BuildNumber0 V_R_System RS-ist
LIITUMINE v_GS_OPERATING_SYSTEM OS-iga RS-is.ResourceID = OS.ResourceID JA OS.BuildNumber0 = @BuildNumber1607
KUS RS.Nimi0 EI OLE IN (
VALI RS.Nimi0
FROM v_Update_ComplianceStatusReported UCS
LIITU V_UpdateInfo kasutajaliideses UCS.CI_ID = UI.CI_ID
JOIN v_R_System RS RS.ResourceType=5 JA RS.ResourceID = UCS.ResourceID
JOIN v_StateNames SN ON SN.TopicType=500 JA SN.StateID=3 JA SN.StateID = UCS.Status
LIITUMINE v_GS_OPERATING_SYSTEM OS-iga OS-IS.ResourceID = RS.ResourceID JA OS.BuildNumber0 = @BuildNumber1607
KUS UI.ArticleID IN (VALI ARTIKLIID ID-SELT @MarchWin101607)
)
Stsenaarium 2: Kliendid, kelle asendamise reegel on seatud väärtusele „Aegub kohe” (või mitte piisavalt kaua):
Kuna CU-d asendatakse iga kuu, ja aegus, kuna suvand ConfigMgr Supersedence Rules on seatud väärtusele „Aegub kohe”, Vastavusandmed pole aegunud värskenduse kohta saadaval – selle stsenaariumi korral, sa saad, Kuid, omama uusima CU kohta vastavusandmeid, nii et lihtsaim viis edasi oleks võtta kasutusele uusim CU ja selle vastu teatada.
Alternatiivsed valikud (Windowsi jaoks 10 ja Server 2016):
Alternatiivsed võimalused ülaltoodule, mis võib aidata määrata ohustatud masinaid, aegunud CU kohta teatades, on järgmised:
A. Laiendage riistvaravaru, et hõlmata Win32_QuickFixEngineering, ja kasutage neid andmeid ohustatud masinate tuvastamiseks. Kui mõnel masinal pole kumbagi märts, aprill või mai CU paigaldatud, nad on "ohus". MÄRKUS, et kui see pole veel lubatud, siis luba see kohe, peate ootama, kuni kõik kliendid teatavad riistvara inventuurist.
-- Kliendid, kellel on HINV jaoks lubatud Win32_QuickFixEngineering klass, saavad neid päringuid kasutada.
-- Windows 10 machines that do not have the March (or any of the superseding updates) installed and could be 'at risk'.
-- These queries are OS dependent, since we are querying individual KB's, and need to compare those KB's against proper builds to prevent getting inaccurate results.
-- Päring piirab tulemusi masinate jaoks, millel on v_GS_Quick_Fix_Engineering klassis vähemalt üks rida, et tagada selle klassi masina kohta mõned HINV-andmed.
-- Windows 10 RTM
DECLARE @BuildNumberRTM INT = '10240'
DEKLARATSIOON @MarchWin10 TABEL (ArticleID NVARCHAR(20))
INSERT INTO @MarchWin10 VALUES ('4012606') -- March Cumulative
INSERT INTO @MarchWin10 VALUES ('4019474')
INSERT INTO @MarchWin10 VALUES ('4015221')
INSERT INTO @MarchWin10 VALUES ('4016637')
SELECT RS.Name0, OS.BuildNumber0, QFE.HotFixID0, COUNT(QFEALL.HotFixID0) AS TotalHotfixes FROM v_R_System RS
LIITUGE v_GS_OPERATING_SYSTEM OS-iga OS-IS.ResourceID = RS.ResourceID JA OS.BuildNumber0 = @BuildNumberRTM
LIITUMINE v_GS_QUICK_FIX_ENGINEERING QFEALL SAALUS QFEALL.ResourceID = RS.ResourceID
VASAKULE LIITUMINE v_GS_QUICK_FIX_ENGINEERING QFE SEES QFE.ResourceID = RS.ResourceID JA QFE.HotFixID0 IN (SELECT 'KB' + Artikli ID: @MarchWin10)
KUS QFE.HotFixID0 ON NULL
GROUP BY RS.Name0, OS.BuildNumber0, QFE.HotFixID0
LOENDAB(QFEALL.HotFixID0) > 0
-- Windows 10 1511
DECLARE @BuildNumber1511 INT = '10586'
DECLARE @MarchWin101511 TABLE (ArticleID NVARCHAR(20))
SISESTAGE @MarchWin101511 VÄÄRTUSED ('4013198') -- Märts Kumulatiivne
SISESTAGE @MarchWin101511 VÄÄRTUSED ('4015219')
SISESTAGE @MarchWin101511 VÄÄRTUSED ('4016636')
SISESTAGE @MarchWin101511 VÄÄRTUSED ('4019473')
SELECT RS.Name0, OS.BuildNumber0, QFE.HotFixID0, COUNT(QFEALL.HotFixID0) AS TotalHotfixes FROM v_R_System RS
LIITUMINE v_GS_OPERATING_SYSTEM OS-iga OS-IS.ResourceID = RS.ResourceID JA OS.BuildNumber0 = @BuildNumber1511
LIITUMINE v_GS_QUICK_FIX_ENGINEERING QFEALL SAALUS QFEALL.ResourceID = RS.ResourceID
VASAKULE LIITUMINE v_GS_QUICK_FIX_ENGINEERING QFE SEES QFE.ResourceID = RS.ResourceID JA QFE.HotFixID0 IN (SELECT 'KB' + Artikli ID: @MarchWin101511)
KUS QFE.HotFixID0 ON NULL
GROUP BY RS.Name0, OS.BuildNumber0, QFE.HotFixID0
LOENDAB(QFEALL.HotFixID0) > 0
-- Windows 10 1607
DECLARE @BuildNumber1607 INT = '14393'
DECLARE @MarchWin101607 TABLE (ArticleID NVARCHAR(20))
SISESTAGE @MarchWin101607 VÄÄRTUSED ('4013429') -- Märts Kumulatiivne
SISESTAGE @MarchWin101607 VÄÄRTUSED ('4015217')
SISESTAGE @MarchWin101607 VÄÄRTUSED ('4015438')
SISESTAGE @MarchWin101607 VÄÄRTUSED ('4016635')
SISESTAGE @MarchWin101607 VÄÄRTUSED ('4019472')
SELECT RS.Name0, OS.BuildNumber0, QFE.HotFixID0, COUNT(QFEALL.HotFixID0) AS TotalHotfixes FROM v_R_System RS
LIITUMINE v_GS_OPERATING_SYSTEM OS-iga OS-IS.ResourceID = RS.ResourceID JA OS.BuildNumber0 = @BuildNumber1607
LIITUMINE v_GS_QUICK_FIX_ENGINEERING QFEALL SAALUS QFEALL.ResourceID = RS.ResourceID
VASAKULE LIITUMINE v_GS_QUICK_FIX_ENGINEERING QFE SEES QFE.ResourceID = RS.ResourceID JA QFE.HotFixID0 IN (SELECT 'KB' + Artikli ID: @MarchWin101607)
KUS QFE.HotFixID0 ON NULL
GROUP BY RS.Name0, OS.BuildNumber0, QFE.HotFixID0
LOENDAB(QFEALL.HotFixID0) > 0
B. Looge konfiguratsiooniüksus ja baasjoon, mis esitab päringu märtsis, Aprillis ja mais Win32_QuickFixEngineeringu CU-d ja aruanded vastavusest. Siin on Umair Khani kirjutatud PowerShelli skripti näidis, mida saab kasutada DCM-i baasjoones:
$InstalledKBList = Get-Wmiobject -klass Win32_QuickFixEngineering -nimeruum "rootcimv2" | valige objekt - Atribuudi HotFixID | Out-String
[massiivi]$WannaCryList =
"KB4012598",
"KB4012212",
"KB4012215",
"KB4012213",
"KB4012216",
"KB4012214",
"KB4012217",
"KB4012606",
"KB4013198",
"KB4013429",
"KB4015219",
"KB4015221",
"KB4016636",
"KB4015438",
"KB4015550",
"KB4015551",
"KB4016637",
"KB4019473",
"KB4016635",
"KB4018466",
"KB4015552",
"KB4019215",
"KB4019216",
"KB4019474",
"KB4019472",
"KB4019264"
$ Vastavus = 0;
igaühele ($element jaotises $WannaCryList)
{
kui ($InstallitudKBList - vaste $elem)
{
#Kirjutusväljund "$elem leitud"
$ Vastavus = 1
murda
}
}
$Nõuetele vastav