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

Si applica a: ✔️ Windows macchine virtuali

Prima di caricare una macchina virtuale Windows da locale ad Azure, è necessario preparare il disco rigido virtuale (VHD o VHDX). Azure supporta sia le macchine virtuali di seconda generazione che sono in formato file VHD e che hanno un disco a dimensione fissa. Le dimensioni massime consentite per il disco rigido virtuale del sistema operativo in una macchina virtuale di prima generazione sono di 2 TB.

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

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

Nota

Le istruzioni contenute in questo articolo si applicano a:

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

Controllo file di sistema

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

Il controllo file di sistema (SFC) viene usato per verificare e sostituire Windows file di sistema.

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 Windows Aggiornamenti 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 verrà bloccata nella configurazione guidata.

  1. Rimuovere tutte le route persistenti statiche nella tabella di routing:

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

    netsh.exe winhttp reset proxy
    

    Se la macchina virtuale deve usare un proxy specifico, aggiungere un'eccezione 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. Apri DiskPart:

    diskpart.exe
    

    Impostare i criteri 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 Windows ora w32time su Automatico:

    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 alimentazione su prestazioni elevate:

    powercfg.exe /setactive SCHEME_MIN
    
  6. Assicurarsi 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 successive), 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 Windows macchina virtuale.

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 Servizi componenti di integrazione Hyper-V. In tal caso, contattare il supporto VMware per eseguire la migrazione della macchina virtuale ad Azure e renderla co-risiede nel server VMware.

Verificare i servizi di Windows

Assicurarsi che ognuno dei servizi di Windows seguenti sia impostato sul valore predefinito 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 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 Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services -Name <string> -Value <object>di , è possibile ignorarlo in modo sicuro. Significa che il dominio non imposta tale 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 è configurata 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 le 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 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 autofirmato 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 che sia possibile connettersi quando si distribuisce la macchina virtuale. È anche possibile esaminare 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 Policy 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 NLA
    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 tramite i tre profili firewall (dominio, privato e pubblico) e abilitare il servizio remoto di PowerShell:

    Enable-PSRemoting -Force
    Set-NetFirewallRule -Name WINRM-HTTP-In-TCP, WINRM-HTTP-In-TCP-PUBLIC -Enabled True
    
  3. Abilitare le regole del firewall seguenti per consentire il traffico RDP:

    Set-NetFirewallRule -Group '@FirewallAPI.dll,-28752' -Enabled True
    
  4. 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
    
  5. 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
    
  6. Se la macchina virtuale fa parte di un dominio, controllare i criteri di Azure AD seguenti per assicurarsi che le impostazioni precedenti non vengano ripristinate.

    Obiettivo Policy 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 rdp accessibile:

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

    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 risolvere Windows problemi di arresto anomalo. Abilitare la raccolta 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 WMI (Management Instrumentation) di Windows sia coerente:

    winmgmt.exe /verifyrepository
    

    Se il repository è danneggiato, vedere WMI: danneggiamento del repository o meno.

  5. Assicurarsi che nessuna altra applicazione di 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 è 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 mai necessario avviare la macchina virtuale in DSRM. Per altre informazioni, vedere Impostare una password DSRM.

  7. Assicurarsi di conoscere l'account di amministratore e la password predefiniti. È possibile reimpostare la password dell'amministratore locale corrente e assicurarsi di poter usare questo account per accedere a Windows tramite la connessione RDP. Questa autorizzazione di accesso è controllata dal Criteri di gruppo Oggetto "Consenti accesso tramite Servizi Desktop remoto". Visualizzare questo oggetto nell'editor di Criteri di gruppo locale:

    • Computer Configuration\Windows Settings\Security Settings\Local Policies\User Rights Assignment
  8. Controllare i criteri di Azure AD 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 Azure AD seguenti per assicurarsi che non vengano rimossi 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:

    • Administrators

    • Backup Operators

    • Tutti

    • Utenti

  10. Riavviare la macchina virtuale per assicurarsi che Windows sia ancora integro e che possa essere raggiunto tramite la connessione RDP. A questo punto, è consigliabile creare una macchina virtuale nel server Hyper-V locale per assicurarsi che la macchina virtuale venga avviata completamente. Testare quindi per assicurarsi di raggiungere la macchina virtuale tramite RDP.

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

  12. Disinstallare qualsiasi altro software o driver di terze parti correlato ai componenti fisici o a qualsiasi altra tecnologia di virtualizzazione.

Installare aggiornamenti di Windows

Nota

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

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

Idealmente, è consigliabile mantenere il computer aggiornato al livello di patch, se non è possibile, assicurarsi che gli aggiornamenti seguenti siano installati. Per ottenere gli aggiornamenti più recenti, vedere le pagine della cronologia degli aggiornamenti 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 Binary 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
Archiviazione 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 Windows Update siano completate e che non siano in sospeso aggiornamenti. Un modo per eseguire questa operazione consiste nell'installare tutti i possibili aggiornamenti Windows e riavviare una volta prima di eseguire il sysprep.exe comando.

Determinare quando usare Sysprep

Lo strumento preparazione sistema (sysprep.exe) è un processo che è possibile eseguire per reimpostare un'installazione Windows. Sysprep offre 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 Come usare Sysprep: Introduzione.

Non tutti i ruoli o le applicazioni installate in un computer basato su Windows supportano immagini generalizzate. Prima di usare questa procedura, assicurarsi che Sysprep supporti il ruolo del computer. Per altre informazioni, vedere Supporto sysprep per i ruoli del 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 crea 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 i 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. Modificare la directory in %windir%\system32\sysprep. Quindi eseguire sysprep.exe.

  5. Nella finestra di dialogo Utilità preparazione sistema selezionare Enter System Out-of-Box Experience (OOBE) e assicurarsi che la casella di controllo Generalize sia selezionata.

    System Preparation Tool

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

  7. Selezionare OK.

  8. Al termine 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 Upload un disco rigido virtuale generalizzato e usarla per creare una nuova macchina virtuale in Azure.

Nota

Un file diunattend.xml personalizzato non è supportato. Sebbene sia supportata la proprietà additionalUnattendContent , che offre solo supporto limitato per l'aggiunta di opzioni di installazione di microsoft-windows-shell-setup nel file diunattend.xml usato dall'agente di provisioning di Azure. È possibile usare, ad esempio, additionalUnattendContent per aggiungere FirstLogonCommands e LogonCommands. Per altre informazioni, vedere l'esempio additionalUnattendContent FirstLogonCommands.

Convertire il disco virtuale in un disco rigido virtuale di dimensioni fisse

Nota

Se si intende usare Azure PowerShell per caricare il disco in Azure ed è abilitato Hyper-V, questo passaggio è facoltativo. Add-AzVHD lo eseguirà.

Usare uno dei metodi descritti in questa sezione per convertire e ridimensionare il disco virtuale nel formato necessario 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 tipo fisso.

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

    1. I dischi in Azure devono avere una dimensione virtuale allineata 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 che è 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 con una macchina virtuale di prima generazione sono pari a 2.048 GiB (2 TiB),

    3. La dimensione massima per un disco dati è 32.767 GiB (32 TiB).

Nota

  • Se si sta preparando un disco del sistema operativo Windows dopo la conversione in un disco fisso e ridimensionarlo, se necessario, creare una macchina virtuale che usa il disco. Avviare e accedere alla macchina virtuale e continuare con le sezioni di questo articolo per completare la preparazione per il caricamento.
  • Se si sta preparando un disco dati, è possibile arrestarsi 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 del computer selezionare AzioneModifica> disco.
  2. Nella pagina Individua disco rigido virtuale selezionare il disco virtuale.
  3. Nella pagina Scegli azione selezionare ConvertiAvanti>.
  4. Per eseguire la conversione da VHDX, selezionare VHDAvanti>.
  5. Per eseguire la conversione da un disco in espansione dinamica, selezionare Dimensioni fisseNext>.
  6. Individuare e selezionare un percorso per salvare il nuovo file VHD.
  7. Selezionare Fine.

Usare PowerShell per convertire il disco

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

Nota

Se si userà Azure PowerShell per caricare il disco in Azure e si dispone di Hyper-V abilitato, questo passaggio è facoltativo. Add-AzVHD lo eseguirà per te.

Nell'esempio seguente viene convertito il disco da VHDX a VHD. Converte anche il disco da un disco in espansione dinamica in un disco di dimensioni fisse.

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

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

Usare Gestione Hyper-V per ridimensionare il disco

Nota

Se si userà Azure PowerShell per caricare il disco in Azure e si dispone di Hyper-V abilitato, questo passaggio è facoltativo. Add-AzVHD lo eseguirà per te.

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

Usare PowerShell per ridimensionare il disco

Nota

Se si userà Azure PowerShell per caricare il disco in Azure e si dispone di Hyper-V abilitato, questo passaggio è facoltativo. Add-AzVHD lo eseguirà per te.

È possibile ridimensionare un disco virtuale usando 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 per 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 si dispone di un'immagine di macchina virtuale Windows nel formato di file VMDK, è possibile usare Azure Migrate per convertire vmDK e caricarlo in Azure.

Le impostazioni seguenti non influiscono sul caricamento del disco rigido virtuale. È tuttavia fortemente consigliabile configurarle.

  • Installare l'agente di macchine virtuali di Azure. Sarà quindi possibile abilitare le estensioni delle VM. Le estensioni della macchina virtuale implementano la maggior parte delle funzionalità critiche che è possibile usare con le macchine virtuali. Sono necessarie le estensioni, 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 pagina nel volume dell'unità temporale per migliorare le prestazioni. È possibile configurare il posizionamento del 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 un disco dati è collegato alla macchina virtuale, la lettera del volume dell'unità temporale è in genere D. Questa designazione potrebbe essere diversa, 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 Windows eseguiti quando si distribuisce una nuova macchina virtuale dall'immagine.

Passaggi successivi