如何验证是否已安装 MS17-010
小编:海玉 1200阅读 2020.09.09
此知识库文章按原样提供,不会替换通过常规更新通道提供的替代数据。 可以在安全更新指南和其他附带工具中找到发生在以下数据之后的替代信息。
摘要
安全更新 MS17-010 修复了 Windows 服务器消息块 (SMB) v1 中的多个漏洞。 WannaCrypt 勒索软件正在利用作为 MS17-010 更新一部分的漏洞之一。 由于此恶意软件有若干变种,因此未安装 MS17-010 的计算机将面临较高的风险。 本文提供了多种快速检测计算机是否已更新的方法。
方法 1: 通过已安装的知识库编号进行检查
使用下表检查已列出的任意更新(标记为“不包含 MS17-010 修补程序”的更新除外)。 如果已安装了其中列出的任何更新,则表示已安装了 MS17-010。
表 1/2: Windows 7 SP1 及更高版本。 以下汇总知识库包含此修补程序(“4 月仅安全 4B”列除外)。 每个 KB 编号下方列出了更新的 Srv.sys 版本号。
Windows 版本 | 3 月的仅安全更新 (2017 年 3 月 14 日) |
3 月月度汇总 (2017 年 3 月 14 日) |
3 月月度汇总预览 (2017 年 3 月 21 日) |
4 月仅 安全更新 (2017 年 4 月 11 日) |
4 月月度汇总 (2017 年 4 月 11 日) |
4 月月度汇总预览 (2017 年 4 月 18 日) |
5 月仅安全更新 (2017 年 5 月 9 日) |
5 月月度汇总 (2017 年 5 月 9 日) |
下载链接 |
Windows 7 SP1 和 Windows Server 2008 R2 SP1 |
4012212 |
4012215 |
4012218 |
4015546 |
4015549 |
4015552 |
4019263 |
4019264 |
https://support.microsoft.com/zh-cn/help/4009469 |
Windows 2012 |
4012214 |
4012217 |
4012220 |
4015548 |
4015551 |
4015554 |
4019214 |
4019216 |
https://support.microsoft.com/zh-cn/help/4009471 |
Windows 8.1 和 Windows Server 2012 R2 |
4012213 |
4012216 |
4012219 |
4015547 不包含 MS17-010 修补程序 |
4015550 |
4015553 |
4019213 |
4019215 |
https://support.microsoft.com/zh-cn/help/4009470 |
Windows 10 版本 1507 |
4012606 |
4016637 |
- |
- |
4015221 |
- |
- |
4019474 10.0.10240.17394 |
https://support.microsoft.com/zh-cn/help/4000823 |
Windows 10 版本 1511 |
4013198 |
4016636 |
- |
- |
4015219 |
- |
- |
4019473 |
https://support.microsoft.com/zh-cn/help/4000824 |
Windows 10 版本 Windows Server 2016 |
4013429 |
4016635 |
- |
- |
4015217 |
- |
- |
4019472 |
https://support.microsoft.com/zh-cn/help/4000825 |
表 2/2: 2017 年 5 月和 6 月更新(续)。
Windows 版本 | 5 月月度汇总预览(2017 年 5 月 16 日) | 6 月仅安全更新(2017 年 6 月 13 日) | 6 月月度汇总(2017 年 6 月 13 日) | 下载链接 |
Windows 7 和 Server 2008 R2 |
4019265
|
4022722 |
4022168 |
https://support.microsoft.com/zh-cn/help/4009469 |
Windows Server 2012 |
4019218 |
4022718 |
4022724 |
https://support.microsoft.com/zh-cn/help/4009471 |
Windows 8.1 和 Windows Server 2012 R2 |
4019217 |
4022717 |
4022720 |
https://support.microsoft.com/zh-cn/help/4009470 |
Windows 10 版本 1507 |
- |
- |
4032695 |
https://support.microsoft.com/zh-cn/help/4000823 |
Windows 10 版本 1511 |
- |
- |
4032693 |
https://support.microsoft.com/zh-cn/help/4000824 |
Windows 10 版本 1607 和 Windows Server 2016 |
- |
- |
4022723 |
https://support.microsoft.com/zh-cn/help/4000825 |
表 2: 其他 Windows 版本。 使用 KB 4012598 作为安全更新。
Windows 版本 |
知识库编号和 已更新 Srv.sys 版本 |
下载链接 |
Windows Server 2003 SP2 |
4012598 |
Windows Server 2003 SP2 x64 |
Windows XP |
4012598 |
Windows XP SP2 x64 |
Windows Vista SP2 |
4012598 |
Windows Vista Service Pack 2 |
Windows Server 2008 SP2 |
4012598 |
Windows Server 2008(用于 32 位系统)Service Pack 2 |
Windows 8 |
4012598 |
Windows 8 x86,Windows 8 x64 |
表 3: 其他包含修补程序的更新。
Windows 8.1 和 Windows Server 2012 R2发布日期 | 知识库编号 | 支持页面 |
2017 年 3 月 21 日 |
4012219 |
2017 年 3 月 21 日 —KB4012218(月度汇总预览) |
2017 年 4 月 18 日,星期二 |
4015553 |
2017 年 4 月 18 日 — KB4015553(月度汇总预览) |
2017 年 5 月 16 日(星期二) |
4019217 |
2017 年 5 月 16 日 — KB4019217(月度汇总预览) |
2017 年 6 月 27 日 | 4022720 | 2017 年 6 月 27 日 - KB4022720(月度汇总预览) |
发布日期 | 知识库编号 | 支持页面 |
2017 年 3 月 21 日 |
4012220 |
2017 年 3 月 21 日 — KB4012220(月度汇总预览) |
2017 年 4 月 18 日,星期二 |
4015554 |
2017 年 4 月 18 日 — KB4015554(月度汇总预览) |
2017 年 5 月 16 日(星期二) |
4019218 |
2017 年 5 月 16 日 — KB4019218(月度汇总预览) |
2017 年 6 月 27 日 | 4022721 | 2017 年 6 月 27 日 - KB4022721(月度汇总预览) |
发布日期 | 知识库编号 | 支持页面 |
2017 年 3 月 21 日 |
4012218 |
2017 年 3 月 21 日 —KB4012218(月度汇总预览) |
2017 年 4 月 18 日,星期二 |
4015552 |
2017 年 4 月 18 日— KB4015552(月度汇总预览) |
2017 年 5 月 16 日(星期二) |
4019265 |
2017 年 5 月 16 日— KB4019265(月度汇总预览) |
2017 年 6 月 27 日 | 4022168 | 2017 年 6 月 27 日 - 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 |
GDR:6.0.6002.19743, LDR:6.0.6002.24067 |
Windows 7 |
6.1.7601.23689 |
Windows 8 |
6.2.9200.22099 |
Windows 8.1 |
6.3.9600.18604 |
Windows 10 TH1 v1507 |
10.0.10240.17319 |
Windows 10 TH2 v1511 |
10.0.10586.839 |
Windows 10 RS1 v1607 |
10.0.14393.953 |
方法 3: 通过 WMI 和 Windows PowerShell 进行检查
使用 WMI 和 Windows PowerShell 确定是否已安装 MS17-010 修补程序。
WMI 命令
若要查找指定的知识库编号,请打开提升的命令提示符窗口,然后运行以下命令:
wmic qfe get hotfixid | find "KB1234567"
注意
在此命令中,请将
使用与号 (&) 搜索多个更新。 例如,运行以下命令:
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
注意
在此命令中,请将
使用逗号 (,) 搜索多个更新。 例如,运行以下命令:
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”)以搜索整个域中的计算机。 在此命令中,请将
如何解决“不适用”安装错误
如果计算机上尚未安装先决修补程序,则在 Windows 8.1 或 Windows 服务器 2012 R2 上安装 MS17-010 时,您可能会收到以下错误消息:
此更新不适用于你的计算机
若要解决此错误,请按照下列步骤操作:
请确保你正在尝试安装正确的更新。 为此,请检查方法 1 的表 1 中的知识库编号。 将其与你的系统版本、系统服务包级别和系统位级别(x64、IA64 或 x86)进行比较。
检查缺失的依赖项。
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
}
#
相关推荐
- 2021年中国移动计算机类(网络管理员)面试题 第1题: 1.1有A、B、C、D四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时1、2、5、10分钟,只有一支手电,并且同时最多只能两个人一起过桥。请问,如何安排,能够在17分钟内这四个人都过桥? 1.2 1-20的两个数把和告诉A,积告诉B,A说不知道是多少,B也…
- 如何在 Excel 单元格中自动换行或输入换行符 简介在 Excel 中,当文本长度超过单元格的宽度时,您可能无法看到全部文本。本文介绍了如何通过自动换行或输入换行符在单元格中填充文本。我正在 Excel 中新建表格。有一些长文本,似乎有些不太方便阅读。文本长度超过单元格宽度时,文本会与相邻单元格重叠,导…
- 3DMAX提示和技巧 本主题标识使用 Civil View 的一些重要提示和技巧。常规使用屏幕分辨率至少为 1280x1024 的 Civil View。低于此分辨率时,一些面板将占用过多屏幕空间。 将视口设置为线框显示以达到最佳性能。 要尽可能简化用户界面,请在单个视口中工作并关闭 3ds Max 命令面…