ประกาศ
บทความฐานความรู้นี้จัดทําขึ้นในลักษณะที่เป็นและไม่ได้แทนที่ข้อมูลการยืดเวลาที่แสดงผ่านช่องทางการอัปเดตปกติ ข้อมูลการยืดเวลาที่ลงวันที่หลังข้อมูลต่อไปนี้สามารถพบได้ใน คู่มือการอัปเดตความปลอดภัย และเครื่องมือประกอบอื่นๆ
สรุป
ดู ผลิตภัณฑ์ ที่เกี่ยวข้องกับบทความนี้
โปรแกรมปรับปรุงความปลอดภัย MS17-010 จัดการกับช่องโหว่ต่างๆ ใน Windows Server Message Block (SMB) v1 แรนซัมแวร์ของ WannaCrypt กําลังใช้ประโยชน์จากหนึ่งในช่องโหว่ที่เป็นส่วนหนึ่งของการอัปเดต MS17-010 คอมพิวเตอร์ที่ไม่ได้ติดตั้ง MS17-010 จะมีความเสี่ยงสูงเนื่องจากมัลแวร์หลายชนิด บทความนี้มีวิธีการด่วนหลายวิธีเพื่อตรวจสอบว่าคอมพิวเตอร์ของคุณอัปเดตแล้วหรือยัง
วิธีที่ 1: ตรวจสอบโดยการติดตั้งหมายเลขฐานความรู้
ใช้ตารางต่อไปนี้เพื่อตรวจสอบการอัปเดตใดๆ ที่แสดงอยู่ในรายการ (ยกเว้นการอัปเดตที่ทําเครื่องหมายเป็น "ไม่มีแพตช์ MS17-010") ถ้ามีการติดตั้งรายการใดๆ เหล่านี้ MS17-010 จะถูกติดตั้ง
ตารางที่ 1 จาก 2: Windows 7 SP1 และใหม่กว่า KB ชุดรวมอัปเดตต่อไปนี้มีการแก้ไข (ยกเว้นในคอลัมน์ "ความปลอดภัยเดือนเมษายน 4B เท่านั้น") ใต้หมายเลข KB แต่ละหมายเลขคือหมายเลขเวอร์ชัน Srv.sys ที่อัปเดต
| เวอร์ชันของ Windows | การอัปเดตเฉพาะด้านความปลอดภัยเดือนมีนาคม (14/3/17) | ชุดรวมอัปเดตรายเดือนเดือนมีนาคม (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 เวอร์ชันอื่นๆ ใช้ KB 4012598 สําหรับการอัปเดตความปลอดภัย
| เวอร์ชันของ 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 สําหรับระบบ 32 บิต Service Pack 2 Windows Server 2008 for x64-based Systems Service Pack 2 Windows Server 2008 for Itanium-based 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
เมื่อต้องการตรวจสอบคอมพิวเตอร์ทั้งหมดในโดเมนหรือ OU Active Directory ให้เรียกใช้ 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:
หมายเหตุ
การอัปเดตนี้ไม่สามารถใช้งานกับคอมพิวเตอร์ของคุณ
เมื่อต้องการแก้ไขข้อผิดพลาดนี้ ให้ทําตามขั้นตอนเหล่านี้:
ตรวจสอบให้แน่ใจว่าคุณกําลังพยายามติดตั้งการอัปเดตที่ถูกต้อง โดยตรวจสอบหมายเลข KB ในตาราง 1 ในวิธีที่ 1 เปรียบเทียบกับเวอร์ชันของระบบ ระดับ Service Pack ของระบบ และระดับบิตของระบบ (x64, IA64 หรือ x86)
ตรวจสอบความเชื่อมโยงที่หมายไป สําหรับ Windows 8.1 และ Windows Server 2012 R2 ให้ติดตั้งการแก้ไขที่ขึ้นอยู่กับที่จําเป็นตามบทความต่อไปนี้:
ถ้าคุณไม่สามารถติดตั้งการอัปเดตชุดรวมอัปเดต ให้ลองใช้ชุดรวมอัปเดตเวอร์ชันอื่น ดูตาราง 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 เซอร์วิสแพ็ค 2
- Windows XP