Preparare un disco rigido virtuale Windows o VHDX prima del caricamento in Azure

Si applica a: ✔️ macchine virtuali di Windows

Prima di caricare una macchina virtuale di Windows dall'ambiente locale ad Azure, è necessario preparare il disco rigido virtuale, VHD o VHDX. Azure supporta macchine virtuali sia di prima generazione che di seconda generazione nel formato di file VHD e con un disco a dimensione fissa. La dimensione massima consentita per il disco rigido virtuale del sistema operativo in una macchina virtuale di prima generazione è di 2 TB. È possibile convalidare il file VHD o VHDX facendo riferimento a questa documentazione.

È possibile convertire un file VHDX in disco rigido virtuale, convertire un disco a espansione dinamica in un disco a dimensione fissa, ma non è possibile modificare la generazione di una macchina virtuale. Per altre informazioni, vedere Creare una macchina virtuale di prima o seconda generazione in Hyper-V e Supporto per le macchine virtuali di seconda generazione in Azure.

Per informazioni sui criteri di supporto per le macchine virtuali di Azure, vedere Supporto di software server Microsoft per le macchine virtuali di Azure.

Nota

Le istruzioni in questo articolo si applicano a:

  • Versione a 64 bit di Windows Server 2008 R2 e versioni successive del sistema operativo Windows Server. Per informazioni sull'esecuzione di un sistema operativo a 32 bit in Azure, vedere Supporto per sistemi operativi a 32 bit in macchine virtuali di Azure.
  • Se verrà usato uno strumento di ripristino di emergenza per eseguire la migrazione del carico di lavoro, ad esempio Azure Site Recovery o Azure Migrate, questo processo è comunque necessario nel sistema operativo guest per preparare l'immagine prima della migrazione.

Verifica file di sistema

Eseguire l'utilità Verifica file di sistema di Windows prima della generalizzazione dell'immagine del sistema operativo

L'utilità Verifica file di sistema (SFC) viene usata per verificare e sostituire i file di sistema di Windows.

Importante

Usare una sessione di PowerShell con privilegi elevati per eseguire gli esempi in questo articolo.

Eseguire il comando SFC:

sfc.exe /scannow
Beginning system scan.  This process will take some time.

Beginning verification phase of system scan.
Verification 100% complete.

Windows Resource Protection did not find any integrity violations.

Al termine dell'analisi SFC, installare gli aggiornamenti di Windows e riavviare il computer.

Impostare le configurazioni di Windows per Azure

Nota

La piattaforma Azure monta un file ISO nel DVD-ROM quando viene creata una macchina virtuale Windows da un'immagine generalizzata. Per questo motivo, il DVD-ROM deve essere abilitato nel sistema operativo nell'immagine generalizzata. Se è disabilitato, la macchina virtuale Windows rimarrà bloccata nella configurazione guidata.

  1. Rimuovere qualsiasi route statica persistente nella tabella di routing:

    • Per visualizzare la tabella di routing, eseguire route.exe print.
    • Controllare la sezione Route persistenti. Se è presente una route persistente, usare il comando route.exe delete per rimuoverla.
  2. Rimuovere il proxy WinHTTP:

    netsh.exe winhttp reset proxy
    

    Se la macchina virtuale deve usare un proxy specifico, aggiungere un'eccezione del proxy per l'indirizzo IP di Azure (168.63.129.16) in modo che la macchina virtuale possa connettersi ad Azure:

    $proxyAddress='<your proxy server>'
    $proxyBypassList='<your list of bypasses>;168.63.129.16'
    netsh.exe winhttp set proxy $proxyAddress $proxyBypassList
    
  3. Aprire DiskPart:

    diskpart.exe
    

    Impostare il criterio SAN del disco su Onlineall:

    DISKPART> san policy=onlineall
    DISKPART> exit
    
  4. Impostare l'ora UTC (Coordinated Universal Time) per Windows. Impostare anche il tipo di avvio del servizio ora di Windows w32time su Automatic:

    Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\TimeZoneInformation -Name RealTimeIsUniversal -Value 1 -Type DWord -Force
    Set-Service -Name w32time -StartupType Automatic
    
  5. Impostare il profilo di potenza sulle prestazioni elevate:

    powercfg.exe /setactive SCHEME_MIN
    powercfg /setacvalueindex SCHEME_CURRENT SUB_VIDEO VIDEOIDLE 0
    
  6. Verificare che le variabili di ambiente TEMP e TMP siano impostate sui valori predefiniti:

    Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment' -Name TEMP -Value "%SystemRoot%\TEMP" -Type ExpandString -Force
    Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment' -Name TMP -Value "%SystemRoot%\TEMP" -Type ExpandString -Force
    
  7. Per le macchine virtuali con sistemi operativi legacy (Windows Server 2012 R2 o Windows 8.1 e versioni precedenti), assicurarsi che siano installati i servizi componenti di integrazione Hyper-V più recenti. Per altre informazioni, vedere Aggiornamento dei componenti di integrazione Hyper-V per la macchina virtuale Windows.

Nota

In uno scenario in cui le macchine virtuali devono essere configurate con una soluzione di ripristino di emergenza tra il server VMware locale e Azure, non è possibile usare i servizi componenti di integrazione Hyper-V. In tal caso, contattare il supporto VMware per eseguire la migrazione della macchina virtuale ad Azure e condividerla nel server VMware.

Verificare i servizi di Windows

Assicurarsi che ciascuno dei seguenti servizi di Windows sia impostato sul valore predefinito di Windows. Questi servizi sono il minimo che deve essere configurato per garantire la connettività della macchina virtuale. Per impostare le impostazioni di avvio, eseguire l'esempio seguente:

Get-Service -Name BFE, Dhcp, Dnscache, IKEEXT, iphlpsvc, nsi, mpssvc, RemoteRegistry |
  Where-Object StartType -ne Automatic |
    Set-Service -StartupType Automatic

Get-Service -Name Netlogon, Netman, TermService |
  Where-Object StartType -ne Manual |
    Set-Service -StartupType Manual

Aggiornare le impostazioni del Registro di sistema di Desktop remoto

Assicurarsi che le impostazioni seguenti siano configurate correttamente per l'accesso remoto:

Nota

Se viene visualizzato un messaggio di errore durante l'esecuzione di Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services' -Name <string> -Value <object>, è possibile ignorarlo tranquillamente. Significa che il dominio non sta impostando la configurazione tramite un oggetto Criteri di gruppo.

  1. Remote Desktop Protocol (RDP) è abilitato:

    Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server' -Name fDenyTSConnections -Value 0 -Type DWord -Force
    Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services' -Name fDenyTSConnections -Value 0 -Type DWord -Force
    
  2. La porta RDP viene impostata correttamente usando la porta predefinita 3389:

    Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\Winstations\RDP-Tcp' -Name PortNumber -Value 3389 -Type DWord -Force
    

    Quando si distribuisce una macchina virtuale, vengono create regole predefinite per la porta 3389. Per modificare il numero di porta, eseguire questa operazione dopo la distribuzione della macchina virtuale in Azure.

  3. Il listener è in ascolto su ogni interfaccia di rete:

    Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\Winstations\RDP-Tcp' -Name LanAdapter -Value 0 -Type DWord -Force
    
  4. Configurare la modalità di autenticazione a livello di rete (NLA) per le connessioni RDP:

    Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name UserAuthentication -Value 1 -Type DWord -Force
    
  5. Impostare il valore keep-alive:

    Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services' -Name KeepAliveEnable -Value 1  -Type DWord -Force
    Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services' -Name KeepAliveInterval -Value 1  -Type DWord -Force
    Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\Winstations\RDP-Tcp' -Name KeepAliveTimeout -Value 1 -Type DWord -Force
    
  6. Impostare le opzioni di riconnessione:

    Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services' -Name fDisableAutoReconnect -Value 0 -Type DWord -Force
    Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\Winstations\RDP-Tcp' -Name fInheritReconnectSame -Value 1 -Type DWord -Force
    Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\Winstations\RDP-Tcp' -Name fReconnectSame -Value 0 -Type DWord -Force
    
  7. Limitare il numero di connessioni simultanee:

    Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\Winstations\RDP-Tcp' -Name MaxInstanceCount -Value 4294967295 -Type DWord -Force
    
  8. Rimuovere tutti i certificati autofirmati associati al listener RDP:

    if ((Get-Item -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp').Property -contains 'SSLCertificateSHA1Hash')
    {
        Remove-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name SSLCertificateSHA1Hash -Force
    }
    

    Questo codice garantisce la connessione quando si distribuisce la macchina virtuale. È anche possibile rivedere queste impostazioni dopo la distribuzione della macchina virtuale in Azure.

  9. Se la macchina virtuale fa parte di un dominio, controllare i criteri seguenti per assicurarsi che le impostazioni precedenti non vengano ripristinate.

    Obiettivo Criteri Valore
    RDP è abilitato Configurazione computer\Criteri\Impostazioni di Windows \Modelli amministrativi\Componenti\Servizi Desktop remoto\Host sessione Desktop remoto\Connessioni Consenti la connessione remota tramite Servizi Desktop remoto
    Criteri di gruppo NLA Impostazioni\Modelli amministrativi\Componenti\Servizi Desktop remoto\Host sessione Desktop remoto\Sicurezza Richiedere l'autenticazione utente per l'accesso remoto tramite autenticazione a livello di rete
    Impostazioni keep-alive Configurazione computer\Criteri\Impostazioni di Windows\Modelli amministrativi\Componenti di Windows\Servizi Desktop remoto\Host sessione Desktop remoto\Connessioni Configura intervallo keep-alive della connessione
    Impostazioni di riconnessione Configurazione computer\Criteri\Impostazioni di Windows\Modelli amministrativi\Componenti di Windows\Servizi Desktop remoto\Host sessione Desktop remoto\Connessioni Riconnettersi automaticamente
    Numero limitato di impostazioni di connessione Configurazione computer\Criteri\Impostazioni di Windows\Modelli amministrativi\Componenti di Windows\Servizi Desktop remoto\Host sessione Desktop remoto\Connessioni Limita il numero di connessioni

Configurare le regole del firewall di Windows

  1. Attivare Windows Firewall sui tre profili (dominio, standard e pubblico):

    Set-NetFirewallProfile -Profile Domain, Public, Private -Enabled True
    
  2. Eseguire l'esempio seguente per consentire WinRM attraverso i tre profili firewall (dominio, privato e pubblico) e abilitare il servizio remoto di PowerShell:

    Enable-PSRemoting -Force
    

Nota

Quando questo comando viene eseguito, abilita automaticamente le regole del firewall appropriate.

  1. Abilitare le regole del firewall seguenti per consentire il traffico RDP:

    Get-NetFirewallRule -DisplayGroup 'Remote Desktop' | Set-NetFirewallRule -Enabled True
    
  2. Abilitare la regola per la condivisione di file e stampanti in modo che la macchina virtuale possa rispondere alle richieste ping all'interno della rete virtuale:

    Set-NetFirewallRule -Name FPS-ICMP4-ERQ-In -Enabled True
    
  3. Creare una regola per la rete della piattaforma Azure:

    New-NetFirewallRule -DisplayName AzurePlatform -Direction Inbound -RemoteAddress 168.63.129.16 -Profile Any -Action Allow -EdgeTraversalPolicy Allow
    New-NetFirewallRule -DisplayName AzurePlatform -Direction Outbound -RemoteAddress 168.63.129.16 -Profile Any -Action Allow
    

Importante

168.63.129.16 è un indirizzo IP pubblico speciale di proprietà di Microsoft per Azure. Per altre informazioni, vedere Che cos'è l'indirizzo IP 168.63.129.16.

  1. Se la macchina virtuale fa parte di un dominio, controllare i criteri di Microsoft Entra seguenti per assicurarsi che le impostazioni precedenti non vengano ripristinate.

    Obiettivo Criteri Valore
    Abilitare i profili di Windows Firewall Configurazione computer\Criteri\Impostazioni di Windows\Modelli amministrativi\Rete\Connessione di rete\Windows Firewall\Profilo di dominio\Windows Firewall Proteggi tutte le connessioni di rete
    Abilitare RDP Configurazione computer\Criteri\Impostazioni di Windows\Modelli amministrativi\Rete\Connessione di rete\Windows Firewall\Profilo di dominio\Windows Firewall Consenti eccezioni per Desktop remoto in ingresso
    Configurazione computer\Criteri\Impostazioni di Windows\Modelli amministrativi\Rete\Connessione di rete\Windows Firewall\Profilo standard\Windows Firewall Consenti eccezioni per Desktop remoto in ingresso
    Abilitare ICMP V4 Configurazione computer\Criteri\Impostazioni di Windows\Modelli amministrativi\Rete\Connessione di rete\Windows Firewall\Profilo di dominio\Windows Firewall Consenti eccezioni ICMP
    Configurazione computer\Criteri\Impostazioni di Windows\Modelli amministrativi\Rete\Connessione di rete\Windows Firewall\Profilo standard\Windows Firewall Consenti eccezioni ICMP

Verificare la VM

Assicurarsi che la macchina virtuale sia integra, sicura e accessibile da RDP:

  1. Per assicurarsi che il disco sia integro e coerente, controllare il disco al successivo riavvio della macchina virtuale:

    chkdsk.exe /f
    

    Assicurarsi che il report mostri un disco pulito e integro.

  2. Configurare le impostazioni dei dati di configurazione di avvio.

    cmd
    
    bcdedit.exe /set "{bootmgr}" integrityservices enable
    bcdedit.exe /set "{default}" device partition=C:
    bcdedit.exe /set "{default}" integrityservices enable
    bcdedit.exe /set "{default}" recoveryenabled Off
    bcdedit.exe /set "{default}" osdevice partition=C:
    bcdedit.exe /set "{default}" bootstatuspolicy IgnoreAllFailures
    
    #Enable Serial Console Feature
    bcdedit.exe /set "{bootmgr}" displaybootmenu yes
    bcdedit.exe /set "{bootmgr}" timeout 5
    bcdedit.exe /set "{bootmgr}" bootems yes
    bcdedit.exe /ems "{current}" ON
    bcdedit.exe /emssettings EMSPORT:1 EMSBAUDRATE:115200
    
    exit
    
  3. Il log di dump può essere utile per la risoluzione dei problemi di arresto anomalo di Windows. Abilitare la raccolta di log di dump:

    # Set up the guest OS to collect a kernel dump on an OS crash event
    Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl' -Name CrashDumpEnabled -Type DWord -Force -Value 2
    Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl' -Name DumpFile -Type ExpandString -Force -Value "%SystemRoot%\MEMORY.DMP"
    Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl' -Name NMICrashDump -Type DWord -Force -Value 1
    
    # Set up the guest OS to collect user mode dumps on a service crash event
    $key = 'HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps'
    if ((Test-Path -Path $key) -eq $false) {(New-Item -Path 'HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting' -Name LocalDumps)}
    New-ItemProperty -Path $key -Name DumpFolder -Type ExpandString -Force -Value 'C:\CrashDumps'
    New-ItemProperty -Path $key -Name CrashCount -Type DWord -Force -Value 10
    New-ItemProperty -Path $key -Name DumpType -Type DWord -Force -Value 2
    Set-Service -Name WerSvc -StartupType Manual
    
  4. Verificare che il repository di Strumentazione gestione Windows (WMI) sia coerente:

    winmgmt.exe /verifyrepository
    

    Se il repository è danneggiato, vedere WMI: il repository è davvero danneggiato?.

  5. Assicurarsi che nessun'altra applicazione a parte TermService usi la porta 3389. Questa porta viene utilizzata per il servizio RDP in Azure. Per visualizzare le porte usate nella macchina virtuale, eseguire netstat.exe -anob:

    netstat.exe -anob
    

    Di seguito viene riportato un esempio.

    netstat.exe -anob | findstr 3389
    TCP    0.0.0.0:3389           0.0.0.0:0              LISTENING       4056
    TCP    [::]:3389              [::]:0                 LISTENING       4056
    UDP    0.0.0.0:3389           *:*                                    4056
    UDP    [::]:3389              *:*                                    4056
    
    tasklist /svc | findstr 4056
    svchost.exe                   4056 TermService
    
  6. Per caricare un disco rigido virtuale Windows che è un controller di dominio:

    • Seguire questi passaggi aggiuntivi per preparare il disco.

    • Assicurarsi di conoscere la password DSRM (Directory Services Restore Mode) nel caso in cui sia necessario avviare la macchina virtuale in DSRM. Per altre informazioni, vedere Impostare una password DSRM.

  7. Assicurarsi di conoscere l'account amministratore e la password predefiniti. È opportuno reimpostare la password dell'amministratore locale corrente e accertarsi di poter usare questo account per accedere a Windows tramite la connessione RDP. Questa autorizzazione di accesso è controllata dall'oggetto Criteri di gruppo "Consenti accesso tramite Servizi Desktop remoto". Visualizzare questo oggetto in Editor Criteri di gruppo locali:

    • Computer Configuration\Windows Settings\Security Settings\Local Policies\User Rights Assignment
  8. Controllare i criteri di Microsoft Entra seguenti per assicurarsi che non blocchino l'accesso RDP:

    • Computer Configuration\Windows Settings\Security Settings\Local Policies\User Rights Assignment\Deny access to this computer from the network

    • Computer Configuration\Windows Settings\Security Settings\Local Policies\User Rights Assignment\Deny log on through Remote Desktop Services

  9. Controllare i criteri di Microsoft Entra seguenti per assicurarsi che non rimuovano gli account di accesso necessari:

    • Computer Configuration\Windows Settings\Security Settings\Local Policies\User Rights Assignment\Access this computer from the network

    I criteri devono elencare i gruppi seguenti:

    • Amministratori

    • Backup Operators

    • Tutti

    • Utenti

  10. Riavviare la macchina virtuale per assicurarsi che Windows sia ancora integro e raggiungibile tramite la connessione RDP. A questo punto, prendere in considerazione la creazione di una macchina virtuale nel server Hyper-V locale per assicurarsi che la macchina virtuale venga avviata completamente. Eseguire quindi i test opportuni per assicurarsi di poter raggiungere la macchina virtuale tramite RDP.

  11. Rimuovere eventuali filtri extra TDI (Transport Driver Interface). Ad esempio, rimuovere il software che analizza i pacchetti TCP o i firewall aggiuntivi.

  12. Disinstallare qualsiasi altro software di terze parti o i driver correlati a componenti fisici o altre tecnologie di virtualizzazione.

Installare gli aggiornamenti di Windows

Nota

Per evitare un riavvio accidentale durante il provisioning delle macchine virtuali, è consigliabile completare tutte le installazioni di aggiornamenti di Windows e assicurarsi che non sia presente alcun riavvio in sospeso. Un modo per eseguire questa operazione consiste nell'installare tutti gli aggiornamenti di Windows e riavviare la macchina virtuale prima di eseguire la migrazione ad Azure.

Se è anche necessario eseguire una generalizzazione del sistema operativo (sysprep), è necessario aggiornare Windows e riavviare la macchina virtuale prima di eseguire il comando Sysprep.

Idealmente, è consigliabile mantenere aggiornato il computer al livello di patch. Se non è possibile, assicurarsi che siano installati gli aggiornamenti seguenti. Per ottenere gli aggiornamenti più recenti, vedere le pagine della cronologia degli aggiornamenti di Windows: Windows 10 e Windows Server 2019, Windows 8.1 e Windows Server 2012 R2 e Windows 7 SP1 e Windows Server 2008 R2 SP1.


Componente Binario Windows 7 SP1, Windows Server 2008 R2 SP1 Windows 8, Windows Server 2012 Windows 8.1, Windows Server 2012 R2 Windows 10 v1607, Windows Server 2016 v1607 Windows 10 v1703 Windows 10 v1709, Windows Server 2016 v1709 Windows 10 v1803, Windows Server 2016 v1803
Storage disk.sys 6.1.7601.23403 - KB3125574 6.2.9200.17638 / 6.2.9200.21757 - KB3137061 6.3.9600.18203 - KB3137061 - - - -
storport.sys 6.1.7601.23403 - KB3125574 6.2.9200.17188 / 6.2.9200.21306 - KB3018489 6.3.9600.18573 - KB4022726 10.0.14393.1358 - KB4022715 10.0.15063.332 - -
ntfs.sys 6.1.7601.23403 - KB3125574 6.2.9200.17623 / 6.2.9200.21743 - KB3121255 6.3.9600.18654 - KB4022726 10.0.14393.1198 - KB4022715 10.0.15063.447 - -
Iologmsg.dll 6.1.7601.23403 - KB3125574 6.2.9200.16384 - KB2995387 - - - - -
Classpnp.sys 6.1.7601.23403 - KB3125574 6.2.9200.17061 / 6.2.9200.21180 - KB2995387 6.3.9600.18334 - KB3172614 10.0.14393.953 - KB4022715 - - -
Volsnap.sys 6.1.7601.23403 - KB3125574 6.2.9200.17047 / 6.2.9200.21165 - KB2975331 6.3.9600.18265 - KB3145384 - 10.0.15063.0 - -
partmgr.sys 6.1.7601.23403 - KB3125574 6.2.9200.16681 - KB2877114 6.3.9600.17401 - KB3000850 10.0.14393.953 - KB4022715 10.0.15063.0 - -
volmgr.sys 10.0.15063.0 - -
Volmgrx.sys 6.1.7601.23403 - KB3125574 - - - 10.0.15063.0 - -
Msiscsi.sys 6.1.7601.23403 - KB3125574 6.2.9200.21006 - KB2955163 6.3.9600.18624 - KB4022726 10.0.14393.1066 - KB4022715 10.0.15063.447 - -
Msdsm.sys 6.1.7601.23403 - KB3125574 6.2.9200.21474 - KB3046101 6.3.9600.18592 - KB4022726 - - - -
Mpio.sys 6.1.7601.23403 - KB3125574 6.2.9200.21190 - KB3046101 6.3.9600.18616 - KB4022726 10.0.14393.1198 - KB4022715 - - -
vmstorfl.sys 6.3.9600.18907 - KB4072650 6.3.9600.18080 - KB3063109 6.3.9600.18907 - KB4072650 10.0.14393.2007 - KB4345418 10.0.15063.850 - KB4345419 10.0.16299.371 - KB4345420 -
Fveapi.dll 6.1.7601.23311 - KB3125574 6.2.9200.20930 - KB2930244 6.3.9600.18294 - KB3172614 10.0.14393.576 - KB4022715 - - -
Fveapibase.dll 6.1.7601.23403 - KB3125574 6.2.9200.20930 - KB2930244 6.3.9600.17415 - KB3172614 10.0.14393.206 - KB4022715 - - -
Rete netvsc.sys - - - 10.0.14393.1198 - KB4022715 10.0.15063.250 - KB4020001 - -
mrxsmb10.sys 6.1.7601.23816 - KB4022722 6.2.9200.22108 - KB4022724 6.3.9600.18603 - KB4022726 10.0.14393.479 - KB4022715 10.0.15063.483 - -
mrxsmb20.sys 6.1.7601.23816 - KB4022722 6.2.9200.21548 - KB4022724 6.3.9600.18586 - KB4022726 10.0.14393.953 - KB4022715 10.0.15063.483 - -
mrxsmb.sys 6.1.7601.23816 - KB4022722 6.2.9200.22074 - KB4022724 6.3.9600.18586 - KB4022726 10.0.14393.953 - KB4022715 10.0.15063.0 - -
tcpip.sys 6.1.7601.23761 - KB4022722 6.2.9200.22070 - KB4022724 6.3.9600.18478 - KB4022726 10.0.14393.1358 - KB4022715 10.0.15063.447 - -
http.sys 6.1.7601.23403 - KB3125574 6.2.9200.17285 - KB3042553 6.3.9600.18574 - KB4022726 10.0.14393.251 - KB4022715 10.0.15063.483 - -
vmswitch.sys 6.1.7601.23727 - KB4022719 6.2.9200.22117 - KB4022724 6.3.9600.18654 - KB4022726 10.0.14393.1358 - KB4022715 10.0.15063.138 - -
Core ntoskrnl.exe 6.1.7601.23807 - KB4022719 6.2.9200.22170 - KB4022718 6.3.9600.18696 - KB4022726 10.0.14393.1358 - KB4022715 10.0.15063.483 - -
Servizi Desktop remoto rdpcorets.dll 6.2.9200.21506 - KB4022719 6.2.9200.22104 - KB4022724 6.3.9600.18619 - KB4022726 10.0.14393.1198 - KB4022715 10.0.15063.0 - -
termsrv.dll 6.1.7601.23403 - KB3125574 6.2.9200.17048 - KB2973501 6.3.9600.17415 - KB3000850 10.0.14393.0 - KB4022715 10.0.15063.0 - -
termdd.sys 6.1.7601.23403 - KB3125574 - - - - - -
win32k.sys 6.1.7601.23807 - KB4022719 6.2.9200.22168 - KB4022718 6.3.9600.18698 - KB4022726 10.0.14393.594 - KB4022715 - - -
rdpdd.dll 6.1.7601.23403 - KB3125574 - - - - - -
rdpwd.sys 6.1.7601.23403 - KB3125574 - - - - - -
Sicurezza MS17-010 KB4012212 KB4012213 KB4012213 KB4012606 KB4012606 - -
KB4012216 KB4013198 KB4013198 - -
KB4012215 KB4012214 KB4012216 KB4013429 KB4013429 - -
KB4012217 KB4013429 KB4013429 - -
CVE-2018-0886 KB4103718 KB4103730 KB4103725 KB4103723 KB4103731 KB4103727 KB4103721
KB4103712 KB4103726 KB4103715

Nota

Per evitare un riavvio accidentale durante il provisioning delle macchine virtuali, è consigliabile assicurarsi che tutte le installazioni di Windows Update siano terminate e che non ci siano aggiornamenti in sospeso. Un modo per eseguire questa operazione consiste nell'installare tutti i possibili aggiornamenti di Windows e riavviare una sola volta prima di eseguire il comando sysprep.exe.

Determinare quando usare Sysprep

System Preparation Tool (sysprep.exe) è un processo che è possibile eseguire per reimpostare un'installazione di Windows. Sysprep ripristina un'esperienza predefinita rimuovendo tutti i dati personali e reimpostando diversi componenti.

In genere si esegue sysprep.exe per creare un modello da cui è possibile distribuire diverse altre macchine virtuali con una configurazione specifica. Il modello è denominato immagine generalizzata.

Per creare una sola macchina virtuale da un disco, non è necessario usare Sysprep. È invece possibile creare la macchina virtuale da un'immagine specializzata. Per informazioni su come creare una macchina virtuale da un disco specializzato, vedere:

Per creare un'immagine generalizzata, è necessario eseguire Sysprep. Per altre informazioni, vedere Introduzione all'uso di Sysprep.

Non tutti i ruoli o le applicazioni installati in un computer basato su Windows supportano le immagini generalizzate. Prima di usare questa procedura, assicurarsi che Sysprep supporti il ruolo del computer. Per altre informazioni, vedere Sysprep support for server roles (Supporto di Sysprep per i ruoli server).

In particolare, Sysprep richiede che le unità vengano decrittografate completamente prima dell'esecuzione. Se è stata abilitata la crittografia nella macchina virtuale, disabilitarla prima di eseguire Sysprep.

Generalizzare un disco rigido virtuale

Nota

Se si sta creando un'immagine generalizzata da una macchina virtuale di Azure esistente, è consigliabile rimuovere le estensioni della macchina virtuale prima di eseguire Sysprep.

Nota

Dopo aver eseguito sysprep.exe nei passaggi seguenti, disattivare la macchina virtuale. Non riattivarla fino a quando non si crea un'immagine da essa in Azure.

  1. Accedere alla VM Windows.

  2. Eseguire una sessione di PowerShell come amministratore.

  3. Eliminare la directory panther (C:\Windows\Panther).

  4. Passare alla directory %windir%\system32\sysprep. Quindi eseguire sysprep.exe.

  5. Nella finestra di dialogo Utilità preparazione sistema selezionare Passare alla Configurazione guidata e verificare che la casella di controllo Generalizza sia selezionata.

    Utilità preparazione sistema

  6. In Opzioni di arresto del sistema selezionare Arresta il sistema.

  7. Seleziona OK.

  8. Al termine dell'esecuzione di Sysprep, arrestare la macchina virtuale. Non usare Riavvia per arrestare la macchina virtuale.

A questo punto il disco rigido virtuale è pronto per essere caricato. Per altre informazioni su come creare una macchina virtuale da un disco generalizzato, vedere Caricare un disco rigido virtuale generalizzato e creare una nuova macchina virtuale in Azure.

Nota

Un file unattend.xml personalizzato non è supportato. La proprietà additionalUnattendContent è supportata, ma fornisce solo supporto limitato per l'aggiunta delle opzioni di microsoft-windows-shell-setup nel file unattend.xml usato dall'agente di provisioning di Azure. È possibile usare, ad esempio, additionalUnattendContent per aggiungere FirstLogonCommands e LogonCommands. Per altre informazionim, vedere l'esempio relativo ad additionalUnattendContent FirstLogonCommands.

Convertire il disco virtuale in un disco rigido virtuale a dimensione fissa

Nota

Se si intende usare Azure PowerShell per caricare il disco in Azure ed è stato abilitato Hyper-V, questo passaggio è facoltativo. Verrà eseguito automaticamente da Add-AzVHD.

Usare uno dei metodi descritti in questa sezione per convertire e ridimensionare il disco virtuale nel formato richiesto per Azure:

  1. Eseguire il backup della macchina virtuale prima di eseguire il processo di conversione o ridimensionamento del disco virtuale.

  2. Assicurarsi che il disco rigido virtuale Windows funzioni correttamente nel server locale. Risolvere qualsiasi errore nella macchina virtuale prima di provare a convertire o caricare il disco in Azure.

  3. Convertire il disco virtuale in un tipo fisso.

  4. Ridimensionare il disco virtuale per soddisfare i requisiti di Azure:

    1. Le dimensioni virtuali dei dischi in Azure devono essere allineate a 1 MiB. Se il disco rigido virtuale è una frazione di 1 MiB, sarà necessario ridimensionare il disco in un multiplo di 1 MiB. I dischi che sono frazioni di un MiB causano errori durante la creazione di immagini dal disco rigido virtuale caricato. Per verificare le dimensioni, è possibile usare il cmdlet Get-VHD di PowerShell per visualizzare "Size", che deve essere un multiplo di 1 MiB in Azure e "FileSize", che sarà uguale a "Size" più 512 byte per il piè di pagina del disco rigido virtuale.

      $vhd = Get-VHD -Path C:\test\MyNewVM.vhd
      $vhd.Size % 1MB
      0
      $vhd.FileSize - $vhd.Size
      512
      
    2. Le dimensioni massime consentite per il disco rigido virtuale del sistema operativo in una macchina virtuale di prima generazione sono di 2.048 GiB (2 TiB).

    3. Le dimensioni massime di un disco dati sono pari a 32.767 GiB (32 TiB).

Nota

  • Se si sta preparando un disco del sistema operativo Windows dopo la conversione in disco fisso e l'eventuale ridimensionamento necessario, creare una macchina virtuale che usa il disco. Avviare la macchina virtuale e accedere, quindi continuare con le sezioni di questo articolo per completare la preparazione per il caricamento.
  • Se si sta preparando un disco dati, è possibile fermarsi con questa sezione e procedere al caricamento del disco.

Usare la console di gestione di Hyper-V per convertire il disco

  1. Aprire la console di gestione di Hyper-V e selezionare il computer locale a sinistra. Nel menu sopra l'elenco di computer selezionare Azione>Modifica disco.
  2. Nella pagina Percorso disco rigido virtuale selezionare il disco virtuale.
  3. Nella pagina Scegli azione selezionare Converti>Avanti.
  4. Per eseguire la conversione da VHDX, selezionare VHD>Avanti.
  5. Per eseguire la conversione da un disco a espansione dinamica, selezionare A dimensione fissa>Avanti.
  6. Individuare e selezionare un percorso in cui salvare il nuovo file VHD.
  7. Selezionare Fine.

Usare PowerShell per convertire il disco

È possibile convertire un disco virtuale utilizzando il cmdlet Convert-VHD in PowerShell. Se sono necessarie informazioni sull'installazione di questo cmdlet, vedere Installare il ruolo Hyper-V.

Nota

Se si intende usare Azure PowerShell per caricare il disco in Azure ed è stato abilitato Hyper-V, questo passaggio è facoltativo. Verrà eseguito automaticamente da Add-AzVHD.

L'esempio seguente converte il disco da VHDX a VHD. Converte anche il disco da un disco a espansione dinamica in un disco a dimensione fissa.

Convert-VHD -Path C:\test\MyVM.vhdx -DestinationPath C:\test\MyNewVM.vhd -VHDType Fixed

In questo esempio sostituire il valore di Path con il percorso del disco rigido virtuale da convertire. Sostituire il valore di DestinationPath con il nuovo percorso e il nome del disco convertito.

Usare la console di gestione di Hyper-V per ridimensionare il disco

Nota

Se si intende usare Azure PowerShell per caricare il disco in Azure ed è stato abilitato Hyper-V, questo passaggio è facoltativo. Verrà eseguito automaticamente da Add-AzVHD.

  1. Aprire la console di gestione di Hyper-V e selezionare il computer locale a sinistra. Nel menu sopra l'elenco di computer selezionare Azione>Modifica disco.
  2. Nella pagina Percorso disco rigido virtuale selezionare il disco virtuale.
  3. Nella pagina Scegli azione selezionare Espandi>Avanti.
  4. Nella pagina Percorso disco rigido virtuale immettere le nuove dimensioni in GiB e fare clic su Avanti.
  5. Selezionare Fine.

Usare PowerShell per ridimensionare il disco

Nota

Se si intende usare Azure PowerShell per caricare il disco in Azure ed è stato abilitato Hyper-V, questo passaggio è facoltativo. Verrà eseguito automaticamente da Add-AzVHD.

È possibile ridimensionare un disco virtuale utilizzando il cmdlet Resize-VHD in PowerShell. Se sono necessarie informazioni sull'installazione di questo cmdlet, vedere Installare il ruolo Hyper-V.

L'esempio seguente ridimensiona il disco da 100,5 MiB a 101 MiB per soddisfare i requisiti di allineamento di Azure.

Resize-VHD -Path C:\test\MyNewVM.vhd -SizeBytes 105906176

In questo esempio sostituire il valore di Path con il percorso del disco rigido virtuale da ridimensionare. Sostituire il valore per SizeBytes con le nuove dimensioni in byte per il disco.

Conversione dal formato VMware VMDK

Se è disponibile un'immagine di macchina virtuale Windows nel formato di file VMDK, è possibile usare Azure Migrate per convertire il file VMDK e caricarlo in Azure.

Le seguenti impostazioni non influenzano il caricamento del disco rigido virtuale. È tuttavia fortemente consigliabile configurarle.

  • Installare l'agente delle macchine virtuali di Azure. Sarà quindi possibile abilitare le estensioni delle VM. Le estensioni delle macchine virtuali implementano la maggior parte delle funzionalità critiche da usare con le macchine virtuali. Le estensioni saranno necessarie, ad esempio, per reimpostare le password o configurare RDP. Per altre informazioni, vedere Panoramica dell'agente di macchine virtuali di Azure.

  • Dopo aver creato la macchina virtuale in Azure, è consigliabile inserire il file di paging nel volume dell'unità temporale per migliorare le prestazioni. È possibile configurare il posizionamento dei file come indicato di seguito:

    Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management' -Name PagingFiles -Value 'D:\pagefile.sys' -Type MultiString -Force
    

    Se è presente un disco dati collegato alla macchina virtuale, la lettera del volume dell'unità temporale è in genere D. Questa designazione può differire a seconda delle impostazioni e del numero di unità disponibili.

    • È consigliabile disabilitare i blocchi di script che potrebbero essere forniti dal software antivirus. Potrebbero interferire e bloccare gli script dell'agente di provisioning di Windows eseguiti quando si distribuisce una nuova macchina virtuale dall'immagine.

Suggerimento

Facoltativo Usare DISM per ottimizzare l'immagine e ridurre il tempo del primo avvio della macchina virtuale.

Per ottimizzare l'immagine, montare il disco rigido virtuale facendovi doppio clic in Esplora risorse e quindi eseguire DISM con il parametro /optimize-image.

DISM /image:D:\ /optimize-image /boot

Dove D: è il percorso del disco rigido virtuale montato.

L'esecuzione di DISM /optimize-image dovrebbe essere l'ultima modifica apportata al disco rigido virtuale. Se si apportano modifiche al disco rigido virtuale prima della distribuzione, è necessario eseguire nuovamente DISM /optimize-image.

Passaggi successivi