Avviso
Il presente articolo della Knowledge Base viene fornito "così com'è" e non sostituisce i dati sostitutivi forniti tramite i normali canali di aggiornamento. I dati sostitutivi che consentono di postdatare i dati seguenti sono disponibili nella Guida agli aggiornamenti della sicurezza e in altri strumenti collaterali.
Riepilogo
Vedere i prodotti a cui si applicano le informazioni contenute in questo articolo.
L'aggiornamento della sicurezza MS17-010 elimina numerose vulnerabilità di Windows Server Message Block (SMB) v1, tra cui quella sfruttata dal ransomware WannaCrypt. I computer in cui non è stata installata la patch MS17-010 sono esposti a un rischio superiore, dovuto ai numerosi attacchi del malware. Il questo articolo vengono illustrati vari metodi per verificare se il computer in uso è aggiornato o meno.
Metodo 1: controllo basato sul numero dell'aggiornamento della Knowledge Base installato
Utilizzare la tabella seguente per verificare se gli aggiornamenti elencati sono installati (ad eccezione di quelli contrassegnati dalla dicitura "Non contiene la patch MS17-010"). Se nel sistema è installato uno qualsiasi di questi aggiornamenti, la patch MS17-010 è installata.
Tabella 1 di 2: Windows 7 SP1 e versioni successive. I seguenti rollup della Knowledge Base contengono la correzione (ad eccezione di quelli nella colonna "Solo sicurezza aprile - 4B"). Sotto il numero di ciascun articolo della Knowledge Base è riportato il numero della versione aggiornata del file Srv.sys.
Versioni di Windows |
Aggiornamento solo della sicurezza di marzo (14/03/17) |
Rollup mensile di marzo |
Anteprima del rollup mensile di marzo |
Aggiornamento Solo sicurezza |
Rollup mensile di aprile |
Anteprima del rollup mensile di aprile |
Aggiornamento Solo sicurezza di maggio |
Rollup mensile di maggio |
Collegamento per il download |
Windows 7 SP1 e Windows Server 2008 R2 SP1 |
4012212 |
4012215 |
4012218 |
4015546 |
4015549 |
4015552 |
4019263 |
4019264 |
|
Windows 2012 |
4012214 |
4012217 |
4012220 |
4015548 |
4015551 |
4015554 |
4019214 |
4019216 |
|
Windows 8.1 e Windows Server 2012 R2 |
4012213 |
4012216 |
4012219 |
4015547 Non contiene la patch MS17-010 |
4015550 |
4015553 |
4019213 |
4019215 |
|
Windows 10 versione 1507 |
4012606 |
4016637 |
- |
- |
4015221 |
- |
- |
4019474 10.0.10240.17394 |
|
Windows 10 versione 1511 |
4013198 |
4016636 |
- |
- |
4015219 |
- |
- |
4019473 |
|
Windows 10 e Windows Server 2016 |
4013429 |
4016635 |
- |
- |
4015217 |
- |
- |
4019472 |
Tabella 2 di 2: continuazione per gli aggiornamenti di maggio e giugno 2017.
Versioni di Windows |
Anteprima del rollup mensile di maggio (16/05/2017) |
Aggiornamento Solo sicurezza di giugno (13/06/2017) |
Rollup mensile di giugno (13/06/2017) |
Collegamento per il download |
Windows 7 e Server 2008 R2 |
4019265
|
4022722 |
4022168 |
|
Windows Server 2012 |
4019218 |
4022718 |
4022724 |
|
Windows 8.1 e Windows Server 2012 R2 |
4019217 |
4022717 |
4022720 |
|
Windows 10 versione 1507 |
- |
- |
4032695 |
|
Windows 10 versione 1511 |
- |
- |
4032693 |
|
Windows 10 versione 1607 e Windows Server 2016 |
- |
- |
4022723 |
Tabella 2: altre versioni di Windows. Utilizzare l'aggiornamento della sicurezza dell'articolo della Knowledge Base 4012598.
Versioni di Windows |
Numero Knowledge Base e |
Collegamento per il download |
Windows Server 2003 SP2 |
4012598 |
|
Windows XP |
4012598 |
Windows XP SP2 x64
|
Windows Vista SP2 |
4012598 |
Windows Vista Service Pack 2
|
Windows Server 2008 SP2 |
4012598 |
Windows Server 2008 per sistemi a 32 bit Service Pack 2
|
Windows 8 |
4012598 |
Tabella 3: altri aggiornamenti che contengono la correzione.
Windows 8.1 e Windows Server 2012 R2
Data di rilascio |
Numero Knowledge Base |
Pagina di supporto |
21 marzo 2017 |
4012219 |
|
martedì 18 aprile 2017 |
4015553 |
|
martedì 16 maggio 2017 |
4019217 |
|
martedì 27 giugno 2017 |
4022720 |
Windows Server 2012
Data di rilascio |
Numero Knowledge Base |
Pagina di supporto |
21 marzo 2017 |
4012220 |
|
martedì 18 aprile 2017 |
4015554 |
|
martedì 16 maggio 2017 |
4019218 |
|
27 giugno 2017 |
4022721 |
Windows 7 SP1 e Windows Server 2008 R2 SP1
Data di rilascio |
Numero Knowledge Base |
Pagina di supporto |
21 marzo 2017 |
4012218 |
|
martedì 18 aprile 2017 |
4015552 |
|
martedì 16 maggio 2017 |
4019265 |
|
martedì 27 giugno 2017 |
4022168 |
Metodo 2: controllo basato sul numero di versione del file %systemroot%\system32\drivers\srv.sys
Utilizzare la tabella seguente per verificare la versione del file %systemroot%\system32\drivers\srv.sys. Se la versione del file è maggiore o uguale a quella indicata, la patch MS17-010 è installata.
Versioni di Windows |
Minima versione aggiornata di 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 |
Metodo 3: controllo basato su WMI e Windows PowerShell
Utilizzare WMI e Windows PowerShell per determinare se le correzioni della patch MS17-010 sono state installate o meno.
Comando WMI
Per trovare il numero di un articolo specifico della Knowledge Base, aprire una finestra del prompt dei comandi con privilegi elevati, quindi eseguire il comando seguente:
wmic qfe get hotfixid | find "KB1234567"
Note
-
In questo comando, sostituire <KB1234567> con il numero effettivo dell'articolo della Knowledge Base.
-
Per ricercare piÙ aggiornamenti, utilizzare la e commerciale (&). Ad esempio, eseguire il comando seguente:
wmic qfe get hotfixid | find "KB4012212" & wmic qfe get hotfixid | find "KB4012215" & wmic qfe get hotfixid | find "KB4015549"
Comandi di PowerShell
Per eseguire il controllo nel sistema locale, eseguire il seguente cmdlet amministrativo di PowerShell:
get-hotfix -id KB1234567
Note
-
In questo comando, sostituire <KB1234567> con il numero effettivo dell'articolo della Knowledge Base.
-
Per ricercare piÙ aggiornamenti, separandoli con una virgola (,). Ad esempio, eseguire il comando seguente:
get-hotfix -id KB4012212,KB4012215,KB4015549
Per eseguire il controllo in tutti i computer di un dominio o unità organizzativa di Active Directory, eseguire il seguente cmdlet amministrativo di PowerShell in un controller di dominio:
foreach ( $n in (get-adcomputer -searchbase ‘OU=workstations,dc=contoso,dc=com’ -filter * -property * | select name )) {get-hotfix -computername $n.name -id KB1234567}
Nota La parte "OU=workstations,dc=contoso,dc=com" può essere modificata in modo da puntare alla radice di una partizione di directory del dominio Active Directory, ad esempio "dc=contoso,dc=com", per eseguire la ricerca nell'intero dominio. In questo comando, sostituire <KB1234567> con il numero effettivo dell'articolo della Knowledge Base.
Come risolvere l'errore di installazione "non applicabile"
Se nei computer non sono installate le correzioni essenziali, durante l'installazione di MS17-010 in Windows 8.1 o Windows Server 2012 R2 è possibile che venga visualizzato il seguente messaggio di errore:
Impossibile applicare l'aggiornamento al computer
Per risolvere l'errore, procedere come segue:
-
Assicurarsi che si sta tentando di installare l'aggiornamento corretto. A tale scopo, controllare il numero dell'articolo della Knowledge Base nella Tabella 1 del Metodo 1. Confrontare tale numero con il sistema in uso, il livello di Service Pack del sistema e il livello di bit del sistema (x64, IA64 o x86).
-
Individuare le eventuali dipendenze mancanti. Per Windows 8.1 e Windows Server 2012 R2, installare le correzioni dipendenti necessarie in base agli articoli seguenti:
-
Articolo della Knowledge Base 2919355: aggiornamento per Windows RT 8.1, Windows 8.1 e Windows Server 2012 R2 - Aprile 2014
-
Articolo della Knowledge Base 2919442: aggiornamento dello stack di servizi per Windows 8.1 e Windows Server 2012 R2 - Marzo 2014
-
Articolo della Knowledge Base 3173424: aggiornamento dello stack di servizi per Windows 8.1 e Windows Server 2012 R2 - 12 luglio 2016
-
-
Se non è possibile installare un determinato aggiornamento cumulativo, provare con una versione diversa del rollup. Per informazioni sugli aggiornamenti disponibili, vedere la Tabella 1.
Script PowerShell
Il seguente script di Windows PowerShell consente di confrontare la versione di Srv.sys sul computer locale con le versioni elencate nel grafico del Metodo 2.
Salvare lo script in un file .ps1 file e quindi eseguirlo tramite PowerShell. Lo script si applica a Windows XP e Windows Server 2003 e versioni successive. Richiede Windows PowerShell 2.0 o versioni successive.
[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
}
#
Riferimenti
Indicazioni per i clienti sugli attacchi WannaCrypt
Blog di Microsoft Malware Protection Center
Le informazioni in questo articolo si applicano a:
-
Windows Server 2016
-
Windows 10 versione 1607
-
Windows 10 versione 1511
-
Windows 10 versione 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