Come verificare se la patch MS17-010 è installata


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 sicurezza di marzo (14/3/17)
Rollup mensile di marzo
(14/03/2017)
Anteprima del rollup mensile di marzo
(21/3/17)
Aggiornamento Solo sicurezza
di aprile
(11/04/2017)
Rollup mensile di aprile
(11/04/2017)
Anteprima del rollup mensile di aprile
(18/04/2017)
Aggiornamento Solo sicurezza di maggio
(9/05/2017)
Rollup mensile di maggio
(9/05/2017)
Collegamento per il download

Windows 7 SP1 e  Windows Server 2008 R2 SP1

4012212
6.1.7601.23689

4012215
6.1.7601.23689

4012218
6.1.7601.23689

4015546
Non contiene la patch MS17-010

4015549
6.1.7601.23689

4015552
6.1.7601.23689

4019263
6.1.7601.23762

4019264
6.1.7601.23762

https://support.microsoft.com/it-it/help/4009469

Windows 2012

4012214
6.2.9200.22099

4012217
6.2.9200.22099

4012220
6.2.9200.22099

4015548
Non contiene la patch MS17-010

4015551
6.2.9200.22099

4015554
6.2.9200.22099

4019214
6.2.9200.22137

4019216
6.2.9200.22137

https://support.microsoft.com/it-it/help/4009471

Windows 8.1 e Windows Server 2012 R2

4012213
6.3.9600.18604

4012216
6.3.9600.18604

4012219
6.3.9600.18604

4015547 Non contiene la patch MS17-010

4015550
6.3.9600.18604

4015553
6.3.9600.18619

4019213
6.3.9600.18655

4019215
6.3.9600.18655

https://support.microsoft.com/it-it/help/4009470

Windows 10 versione 1507

4012606
10.0.10240.17319

4016637
10.0.10240.17319

-

-

4015221
10.0.10240.17319

-

-

4019474 10.0.10240.17394

https://support.microsoft.com/it-it/help/4000823

Windows 10 versione 1511  

4013198
10.0.10586.839

4016636
10.0.10586.839

-

-

4015219
10.0.10586.839

-

-

4019473
10.0.10586.916

https://support.microsoft.com/it-it/help/4000824

Windows 10 e Windows Server 2016

4013429
10.0.14393.953

4016635
10.0.14393.953

-

-

4015217
10.0.14393.953

-

-

4019472
10.0.14393.1198

https://support.microsoft.com/it-it/help/4000825

 

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 Windows Server 2008 R2

4019265
6.1.7601.23762

 

4022722

4022168
6.1.7601.23762

https://support.microsoft.com/it-it/help/4009469
Windows Server 2012

4019218
6.2.9200.22137

4022718

4022724
6.2.9200.22137

https://support.microsoft.com/it-it/help/4009471
Windows 8.1 e Windows Server 2012 R2

4019217
6.3.9600.18655

4022717

4022720
6.3.9600.18688

https://support.microsoft.com/it-it/help/4009470
Windows 10 versione 1507

-

-

4032695

https://support.microsoft.com/it-it/help/4000823
Windows 10 versione 1511

-

-

4032693

https://support.microsoft.com/it-it/help/4000824
Windows 10 versione 1607 e Windows Server 2016

-

-

4022723
10.0.14393.1198

https://support.microsoft.com/it-it/help/4000825

 

Tabella 2: altre versioni di Windows. Utilizzare l'aggiornamento della sicurezza dell'articolo della Knowledge Base 4012598.

Versioni di Windows
Numero Knowledge Base e
versione aggiornata di Srv.sys
Collegamento per il download
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 per sistemi a 32 bit Service Pack 2

Windows Server 2008 per sistemi x64 Service Pack 2


Windows Server 2008 per sistemi Itanium Service Pack 2

Windows 8

4012598
6.2.9200.22099

Windows 8 x86, Windows 8 x64

 

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

21 marzo 2017—KB4012218 (anteprima del rollup mensile)

18 aprile 2017

4015553

18 aprile 2017—KB4015553 (anteprima del rollup mensile)

16 maggio 2017

4019217

16 maggio 2017—KB4019217 (anteprima del rollup mensile)

27 giugno 2017 4022720 27 giugno 2017—KB4022720 (anteprima del rollup mensile)
 
Windows Server 2012

Data di rilascio

Numero Knowledge Base

Pagina di supporto

21 marzo 2017

4012220

21 marzo 2017—KB4012220 (anteprima del rollup mensile)

18 aprile 2017

4015554

18 aprile 2017—KB4015554 (anteprima del rollup mensile)

16 maggio 2017

4019218

16 maggio 2017—KB4019218 (anteprima del rollup mensile)

27 giugno 2017 4022721 27 giugno 2017—KB4022721 (anteprima del rollup mensile)
 
Windows 7 SP1 e Windows Server 2008 R2 SP1

Data di rilascio

Numero Knowledge Base

Pagina di supporto

21 marzo 2017

4012218

21 marzo 2017—KB4012218 (anteprima del rollup mensile)

18 aprile 2017

4015552

18 aprile 2017—KB4015552 (anteprima del rollup mensile)

16 maggio 2017

4019265

16 maggio 2017—KB4019265 (anteprima del rollup mensile)

27 giugno 2017 4022168 27 giugno 2017—KB4022168 (anteprima del rollup mensile)


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
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


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 richieste come prerequisito, quando si installa la patch MS17-010 in Windows 8.1 o Windows Server 2012 R2 è possibile che venga visualizzato il messaggio di errore seguente:
Impossibile applicare l'aggiornamento al computer
Per risolvere l'errore, procedere come segue:
 
  1. 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).
     
  2. 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
  3. 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 CyanWrite-Host "`nExpected Version of srv.sys: $($expectedVersion.ToString())" -ForegroundColor CyanWrite-Host "`nActual Version of srv.sys: $($fileVersion.ToString())" -ForegroundColor CyanIf ($($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    }#

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