วิธีการตรวจสอบว่า MS17-010 ได้รับการติดตั้งแล้ว

ประกาศ

บทความฐานความรู้นี้มีให้ตามที่เป็น และไม่ได้แทนที่ข้อมูลการแทนที่ที่มีให้ผ่านช่องทางการอัปเดตปกติ คุณสามารถดูข้อมูลการแทนที่ข้อมูลหลังวันที่ต่อไปนี้ได้ใน คู่มือการอัปเดตความปลอดภัย และเครื่องมือหลักประกันอื่นๆ

สรุป

ดู ผลิตภัณฑ์ ที่บทความนี้นําไปใช้ได้

โปรแกรมปรับปรุงความปลอดภัย MS17-010 แก้ไขช่องโหว่ต่างๆ ใน Windows Server Message Block (SMB) v1 Ransomware WannaCrypt ใช้ประโยชน์จากช่องโหว่ที่เป็นส่วนหนึ่งของการอัปเดต MS17-010 คอมพิวเตอร์ที่ไม่ได้ติดตั้ง MS17-010 จะมีความเสี่ยงสูงเนื่องจากมีมัลแวร์หลายสายพันธุ์ บทความนี้มีวิธีการด่วนหลายวิธีในการตรวจสอบว่าคอมพิวเตอร์ได้รับการปรับปรุงหรือไม่

วิธีที่ 1: ตรวจสอบโดยการติดตั้งหมายเลขฐานความรู้

ใช้ตารางต่อไปนี้เพื่อตรวจสอบการอัปเดตใดๆ ที่แสดงอยู่ในรายการ (ยกเว้นโปรแกรมปรับปรุงที่มีเครื่องหมาย "ไม่มีโปรแกรมแก้ไข MS17-010") หากมีการติดตั้งไว้แล้ว MS17-010 จะติดตั้งไว้

ตารางที่ 1 จาก 2: Windows 7 SP1 และเวอร์ชันที่ใหม่กว่า ชุดรวมอัปเดตต่อไปนี้มีการแก้ไข (ยกเว้นในคอลัมน์ "เมษายนความปลอดภัยเท่านั้น 4B") ใต้หมายเลข KB แต่ละรายการคือหมายเลขเวอร์ชัน Srv.sys ที่อัปเดต

เวอร์ชันของ Windows การอัปเดตเฉพาะด้านความปลอดภัยเดือนมีนาคม (14/3/60) ชุดรวมอัปเดตรายเดือนมีนาคม
(3/14/17)
ตัวอย่างชุดรวมอัปเดตรายเดือนเดือนมีนาคม
(3/21/17)
ความปลอดภัยเดือนเมษายน
อัปเดตเท่านั้น
(4/11/17)
ชุดรวมอัปเดตรายเดือนเมษายน
(4/11/17)
ตัวอย่างชุดรวมอัปเดตรายเดือนเดือนเมษายน
(4/18/17)
การอัปเดตเฉพาะด้านความปลอดภัยพฤษภาคม
(5/09/17)
ชุดรวมอัปเดตรายเดือนของเดือนพฤษภาคม
(5/09/17)
ลิงก์ดาวน์โหลด
Windows 7 SP1 และ Windows Server 2008 R2 SP1 4012212
6.1.7601.23689
4012215
6.1.7601.23689
4012218
6.1.7601.23689
4015546
ไม่มีโปรแกรมแก้ไข MS17-010
4015549
6.1.7601.23689
4015552
6.1.7601.23689
4019263
6.1.7601.23762
4019264
6.1.7601.23762
ประวัติการอัปเดต Windows 7 SP1 และ Windows Server 2008 R2 SP1
Windows 2012 4012214
6.2.9200.22099
4012217
6.2.9200.22099
4012220
6.2.9200.22099
4015548
ไม่มีโปรแกรมแก้ไข MS17-010
4015551
6.2.9200.22099
4015554
6.2.9200.22099
4019214
6.2.9200.22137
4019216
6.2.9200.22137
ประวัติการอัปเดต Windows Server 2012
Windows 8.1 และ Windows Server 2012 R2 4012213
6.3.9600.18604
4012216
6.3.9600.18604
4012219
6.3.9600.18604
4015547 ไม่มีโปรแกรมแก้ไข MS17-010 4015550
6.3.9600.18604
4015553
6.3.9600.18619
4019213
6.3.9600.18655
4019215
6.3.9600.18655
ประวัติการอัปเดต Windows 8.1 และ Windows Server 2012 R2
Windows 10 เวอร์ชัน 1507 4012606
10.0.10240.17319
4016637
10.0.10240.17319
- - 4015221
10.0.10240.17319
- - 4019474 10.0.10240.17394 ประวัติการอัปเดต Windows 10
Windows 10 เวอร์ชัน 1511 4013198
10.0.10586.839
4016636
10.0.10586.839
- - 4015219
10.0.10586.839
- - 4019473
10.0.10586.916
ประวัติการอัปเดต Windows 10
เวอร์ชัน Windows 10 Windows Server 2016 4013429
10.0.14393.953
4016635
10.0.14393.953
- - 4015217
10.0.14393.953
- - 4019472
10.0.14393.1198
ประวัติการอัปเดต Windows 10 และ Windows Server 2016

 

ตารางที่ 2 จาก 2: ดําเนินการต่อสําหรับการอัปเดตประจําเดือนพฤษภาคมและมิถุนายน 2017

เวอร์ชันของ Windows ตัวอย่างชุดรวมอัปเดตรายเดือนของเดือนพฤษภาคม
(5/16/17)
การอัปเดตเฉพาะด้านความปลอดภัยประจําเดือนมิถุนายน
(6/13/17)
ชุดรวมอัปเดตรายเดือนเดือนมิถุนายน
(6/13/17)
ลิงก์ดาวน์โหลด
Windows 7 และ Server 2008 R2 4019265
6.1.7601.23762
4022722 4022168
6.1.7601.23762
ประวัติการอัปเดต Windows 7 SP1 และ Windows Server 2008 R2 SP1
Windows Server 2012 4019218
6.2.9200.22137
4022718 4022724
6.2.9200.22137
ประวัติการอัปเดต Windows Server 2012
Windows 8.1 และ Windows Server 2012 R2 4019217
6.3.9600.18655
4022717 4022720
6.3.9600.18688
ประวัติการอัปเดต Windows 8.1 และ Windows Server 2012 R2
Windows 10 เวอร์ชัน 1507 - - 4032695 ประวัติการอัปเดต Windows 10
Windows 10 เวอร์ชัน 1511 - - 4032693 ประวัติการอัปเดต Windows 10
Windows 10 เวอร์ชัน 1607 และ Windows Server 2016 - - 4022723
10.0.14393.1198
ประวัติการอัปเดต Windows 10 และ Windows Server 2016

 

ตารางที่ 2: Windows เวอร์ชันอื่นๆ ใช้ 4012598 KB สําหรับการอัปเดตความปลอดภัย

เวอร์ชันของ Windows หมายเลข KB และ
เวอร์ชัน Srv.sys ที่อัปเดตแล้ว
ลิงก์ดาวน์โหลด
Windows Server 2003 SP2 4012598
5.2.3790.6021
Windows Server 2003 SP2 x64

Windows Server 2003 SP2 x86
Windows XP 4012598
5.1.2600.7208
Windows XP SP2 x64

Windows XP SP3 x86

Windows XP Embedded SP3 x86
Windows Vista SP2 4012598
GDR:6.0.6002.19743
LDR:6.0.6002.24067
Windows Vista Service Pack 2

Windows Vista x64 Edition Service Pack 2
Windows Server 2008 SP2 4012598
GDR:6.0.6002.19743
LDR:6.0.6002.24067
Windows Server 2008 สําหรับ Service Pack 2 ระบบ 32 บิต

Windows Server 2008 สําหรับระบบ x64 Service Pack 2

Windows Server 2008 สําหรับ Itanium Systems Service Pack 2
Windows 8 4012598
6.2.9200.22099
Windows 8 x86, Windows 8 x64

 

ตารางที่ 3: การอัปเดตเพิ่มเติมที่มีการแก้ไข

Windows 8.1 และ Windows Server 2012 R2

วันที่เผยแพร่ หมายเลข KB หน้าการสนับสนุน
21 มีนาคม 2017 4012219 21 มีนาคม 2560—KB4012218 (ตัวอย่างชุดรวมอัปเดตรายเดือน)
18 เมษายน 2017 4015553 18 เมษายน 2017—KB4015553 (ตัวอย่างชุดรวมอัปเดตรายเดือน)
16 พฤษภาคม 2017 4019217 16 พฤษภาคม 2017—KB4019217 (ตัวอย่างชุดรวมอัปเดตรายเดือน)
วันที่ 27 มิถุนายน 2017 4022720 27 มิถุนายน 2017—KB4022720 (ตัวอย่างชุดรวมอัปเดตรายเดือน)

Windows Server 2012

วันที่เผยแพร่ หมายเลข KB หน้าการสนับสนุน
21 มีนาคม 2017 4012220 21 มีนาคม 2560—KB4012220 (ตัวอย่างชุดรวมอัปเดตรายเดือน)
18 เมษายน 2017 4015554 18 เมษายน 2017—KB4015554 (ตัวอย่างชุดรวมอัปเดตรายเดือน)
16 พฤษภาคม 2017 4019218 16 พฤษภาคม 2017—KB4019218 (ตัวอย่างชุดรวมอัปเดตรายเดือน)
วันที่ 27 มิถุนายน 2017 4022721 27 มิถุนายน 2017—KB4022721 (ตัวอย่างชุดรวมอัปเดตรายเดือน)

Windows 7 SP1 และ Windows Server 2008 R2 SP1

วันที่เผยแพร่ หมายเลข KB หน้าการสนับสนุน
21 มีนาคม 2017 4012218 21 มีนาคม 2560—KB4012218 (ตัวอย่างชุดรวมอัปเดตรายเดือน)
18 เมษายน 2017 4015552 18 เมษายน 2017—KB4015552 (ตัวอย่างชุดรวมอัปเดตรายเดือน)
16 พฤษภาคม 2017 4019265 16 พฤษภาคม 2017—KB4019265 (ตัวอย่างชุดรวมอัปเดตรายเดือน)
วันที่ 27 มิถุนายน 2017 4022168 27 มิถุนายน 2017—KB4022168 (ตัวอย่างชุดรวมอัปเดตรายเดือน)

วิธีที่ 2: ตรวจสอบโดย %systemroot%\system32\drivers\srv.sys รุ่นของแฟ้ม

ใช้แผนภูมิต่อไปนี้เพื่อตรวจสอบรุ่นของแฟ้ม %systemroot%\system32\drivers\srv.sys หากเวอร์ชันของไฟล์เท่ากับหรือสูงกว่าเวอร์ชันที่แสดงไว้ MS17-010 จะได้รับการติดตั้ง

เวอร์ชันของ Windows เวอร์ชัน Srv.sys ที่อัปเดตน้อยที่สุด
Windows XP 5.1.2600.7208
Windows Server 2003 SP2 5.2.3790.6021
Windows Vista
Windows Server 2008 SP2
GDR:6.0.6002.19743, LDR:6.0.6002.24067
Windows 7
Windows Server 2008 R2
6.1.7601.23689
Windows 8
Windows Server 2012
6.2.9200.22099
Windows 8.1
Windows Server 2012 R2
6.3.9600.18604
Windows 10 TH1 v1507 10.0.10240.17319
Windows 10 TH2 v1511 10.0.10586.839
Windows 10 RS1 v1607
Windows Server 2016
10.0.14393.953

วิธีที่ 3: ตรวจสอบโดย WMI และ Windows PowerShell

ใช้ WMI และ Windows PowerShell เพื่อตรวจสอบว่ามีการติดตั้งการแก้ไข MS17-010 แล้วหรือยัง

คําสั่ง WMI

เมื่อต้องการค้นหาหมายเลข KB ที่ระบุ ให้เปิดหน้าต่างพร้อมท์คําสั่งด้วยสิทธิ์ผู้ดูแล แล้วเรียกใช้คําสั่งต่อไปนี้:


wmic qfe get hotfixid | find "KB1234567"

หมายเหตุ

  • ในคําสั่งนี้ แทนที่ <KB1234567> ด้วยหมายเลข KB จริง

  • ใช้อักขระเครื่องหมายและ (&) เพื่อค้นหาการอัปเดตหลายรายการ ตัวอย่างเช่น เรียกใช้คําสั่งต่อไปนี้:

    wmic qfe get hotfixid | find "KB4012212" & wmic qfe get hotfixid | find "KB4012215" & wmic qfe get hotfixid | find "KB4015549"

คําสั่ง PowerShell

เมื่อต้องการตรวจสอบในระบบภายในเครื่อง ให้เรียกใช้ powershell cmdlet การดูแลระบบต่อไปนี้:


 get-hotfix -id KB1234567

หมายเหตุ

  • ในคําสั่งนี้ แทนที่ <KB1234567> ด้วยหมายเลข KB จริง

  • ใช้เครื่องหมายจุลภาค ( , ) เพื่อค้นหาการอัปเดตหลายรายการ ตัวอย่างเช่น เรียกใช้คําสั่งต่อไปนี้:

    get-hotfix -id KB4012212,KB4012215,KB4015549

เมื่อต้องการตรวจสอบคอมพิวเตอร์ทั้งหมดในโดเมน Active Directory หรือ OU ให้เรียกใช้ powershell cmdlet การดูแลระบบต่อไปนี้บนตัวควบคุมโดเมน:


foreach ( $n in (get-adcomputer -searchbase ‘OU=workstations,dc=contoso,dc=com’ -filter * -property * | select name )) {get-hotfix -computername $n.name -id KB1234567}

หมาย เหตุ ส่วน "OU=workstations,dc=contoso,dc=com" สามารถเปลี่ยนให้ชี้ไปที่รากของพาร์ติชันไดเรกทอรีโดเมน Active Directory เช่น "dc=contoso,dc=com" เพื่อค้นหาคอมพิวเตอร์ในโดเมนทั้งหมด ในคําสั่งนี้ แทนที่ <KB1234567> ด้วยหมายเลข KB จริง

วิธีแก้ไขข้อผิดพลาดการติดตั้ง "ไม่สามารถใช้งานได้"

หากไม่มีการติดตั้งการแก้ไขเบื้องต้นในคอมพิวเตอร์ คุณอาจได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้เมื่อคุณติดตั้ง MS17-010 บน Windows 8.1 หรือ Windows Server 2012 R2:

หมายเหตุ

การอัปเดตนี้ไม่สามารถใช้ได้กับคอมพิวเตอร์ของคุณ

เมื่อต้องการแก้ไขข้อผิดพลาดนี้ ให้ทําตามขั้นตอนเหล่านี้:

  1. ตรวจสอบให้แน่ใจว่าคุณพยายามติดตั้งการอัปเดตที่ถูกต้อง โดยตรวจสอบหมายเลข KB ในตาราง 1 ในวิธีที่ 1 เปรียบเทียบกับเวอร์ชันของระบบ ระดับ Service Pack ของระบบ และระดับบิตของระบบ (x64, IA64 หรือ x86)
     

  2. ตรวจสอบการอ้างอิงที่ขาดหายไป สําหรับ Windows 8.1 และ Windows Server 2012 R2 ให้ติดตั้งการแก้ไขที่ขึ้นต่อกันตามที่จําเป็นตามบทความต่อไปนี้:

    • การอัปเดต KB 2919355: Windows RT 8.1, Windows 8.1 และ Windows Server 2012 R2: เมษายน 2014
    • KB 2919442: การอัปเดตสแตกบริการประจําเดือนมีนาคม 2557 สําหรับ Windows 8.1 และ Windows Server 2012 R2
    • KB 3173424: การอัปเดตสแตกการให้บริการสําหรับ Windows 8.1 และ Windows Server 2012 R2: 12 กรกฎาคม 2016
  3. หากคุณไม่สามารถติดตั้งชุดรวมอัปเดตให้ลองรุ่นชุดรวมอัปเดตอื่น ดูตาราง 1 สําหรับการอัปเดตที่พร้อมใช้งาน
     

สคริปต์ PowerShell

สคริปต์ Windows PowerShell ต่อไปนี้เปรียบเทียบเวอร์ชัน Srv.sys บนคอมพิวเตอร์เฉพาะที่กับเวอร์ชันที่แสดงอยู่ในแผนภูมิในวิธีที่ 2

บันทึกสคริปต์นี้ไปยังไฟล์ .ps1 แล้วเรียกใช้สคริปต์จาก PowerShell สคริปต์นี้ใช้กับ Windows XP และ Windows Server 2003 และเวอร์ชันที่ใหม่กว่า โดยต้องใช้ Windows PowerShell 2.0 หรือรุ่นที่ใหม่กว่า
 


[reflection.assembly]::LoadWithPartialName("System.Version")
$os = Get-WmiObject -class Win32_OperatingSystem
$osName = $os.Caption
$s = "%systemroot%\system32\drivers\srv.sys"
$v = [System.Environment]::ExpandEnvironmentVariables($s)
If (Test-Path "$v")
    {
    Try
        {
        $versionInfo = (Get-Item $v).VersionInfo
        $versionString = "$($versionInfo.FileMajorPart).$($versionInfo.FileMinorPart).$($versionInfo.FileBuildPart).$($versionInfo.FilePrivatePart)"
        $fileVersion = New-Object System.Version($versionString)
        }
    Catch
        {
        Write-Host "Unable to retrieve file version info, please verify vulnerability state manually." -ForegroundColor Yellow
        Return
        }
    }
Else
    {
    Write-Host "Srv.sys does not exist, please verify vulnerability state manually." -ForegroundColor Yellow
    Return
    }
if ($osName.Contains("Vista") -or ($osName.Contains("2008") -and -not $osName.Contains("R2")))
    {
    if ($versionString.Split('.')[3][0] -eq "1")
        {
        $currentOS = "$osName GDR"
        $expectedVersion = New-Object System.Version("6.0.6002.19743")
        } 
    elseif ($versionString.Split('.')[3][0] -eq "2")
        {
        $currentOS = "$osName LDR"
        $expectedVersion = New-Object System.Version("6.0.6002.24067")
        }
    else
        {
        $currentOS = "$osName"
        $expectedVersion = New-Object System.Version("9.9.9999.99999")
        }
    }
elseif ($osName.Contains("Windows 7") -or ($osName.Contains("2008 R2")))
    {
    $currentOS = "$osName LDR"
    $expectedVersion = New-Object System.Version("6.1.7601.23689")
    }
elseif ($osName.Contains("Windows 8.1") -or $osName.Contains("2012 R2"))
    {
    $currentOS = "$osName LDR"
    $expectedVersion = New-Object System.Version("6.3.9600.18604")
    }
elseif ($osName.Contains("Windows 8") -or $osName.Contains("2012"))
    {
    $currentOS = "$osName LDR"
    $expectedVersion = New-Object System.Version("6.2.9200.22099")
    }
elseif ($osName.Contains("Windows 10"))
    {
    if ($os.BuildNumber -eq "10240")
        {
        $currentOS = "$osName TH1"
        $expectedVersion = New-Object System.Version("10.0.10240.17319")
        }
    elseif ($os.BuildNumber -eq "10586")
        {
        $currentOS = "$osName TH2"
        $expectedVersion = New-Object System.Version("10.0.10586.839")
        }
    elseif ($os.BuildNumber -eq "14393")
        {
        $currentOS = "$($osName) RS1"
        $expectedVersion = New-Object System.Version("10.0.14393.953")
        }
    elseif ($os.BuildNumber -eq "15063")
        {
        $currentOS = "$osName RS2"
        "No need to Patch. RS2 is released as patched. "
        return
        }
    }
elseif ($osName.Contains("2016"))
    {
    $currentOS = "$osName"
    $expectedVersion = New-Object System.Version("10.0.14393.953")
    }
elseif ($osName.Contains("Windows XP"))
    {
    $currentOS = "$osName"
    $expectedVersion = New-Object System.Version("5.1.2600.7208")
    }
elseif ($osName.Contains("Server 2003"))
    {
    $currentOS = "$osName"
    $expectedVersion = New-Object System.Version("5.2.3790.6021")
    }
else
    {
    Write-Host "Unable to determine OS applicability, please verify vulnerability state manually." -ForegroundColor Yellow
    $currentOS = "$osName"
    $expectedVersion = New-Object System.Version("9.9.9999.99999")
    }
Write-Host "`n`nCurrent OS: $currentOS (Build Number $($os.BuildNumber))" -ForegroundColor Cyan
Write-Host "`nExpected Version of srv.sys: $($expectedVersion.ToString())" -ForegroundColor Cyan
Write-Host "`nActual Version of srv.sys: $($fileVersion.ToString())" -ForegroundColor Cyan
If ($($fileVersion.CompareTo($expectedVersion)) -lt 0)
    {
    Write-Host "`n`n"
    Write-Host "System is NOT Patched" -ForegroundColor Red
    }
Else
    {
    Write-Host "`n`n"
    Write-Host "System is Patched" -ForegroundColor Green
    }
#

การอ้างอิง

คําแนะนําของลูกค้าสําหรับการโจมตี WannaCrypt

ศูนย์ป้องกันมัลแวร์

บล็อกศูนย์ป้องกันมัลแวร์ของ Microsoft

โปรแกรมปรับปรุงความปลอดภัย MS17-010

Configuration Manager SQL Server คิวรีสําหรับการรายงานการปฏิบัติตามกฎระเบียบที่เกี่ยวข้องกับ MS17-010

บทความนี้ใช้กับ:

 

  • Windows Server 2016
  • Windows 10 เวอร์ชัน 1607
  • Windows 10 เวอร์ชัน 1511
  • Windows 10 เวอร์ชัน 1507
  • Windows Server 2012 R2
  • Windows 8.1
  • Windows Server 2012
  • Windows 8
  • Windows Server 2008 R2
  • Windows 7
  • Windows Server 2008 Service Pack 2
  • Windows Vista
  • Windows Server 2003 Service Pack 2
  • Windows XP