Gestire macchine virtuali su Azure Stack HCI usando Windows PowerShell

Si applica a: Azure Stack HCI, versioni 23H2 e 22H2; Windows Server 2022, Windows Server 2019

Windows PowerShell può essere usato per creare e gestire le macchine virtuali in Azure Stack HCI.

Nota

Il modo consigliato per creare e gestire macchine virtuali in Azure Stack HCI 23H2 usa il piano di controllo Azure Arc. Tuttavia, poiché la funzionalità descritta in questo articolo non è ancora fornita da Azure Arc, è possibile usare Windows Admin Center o PowerShell come descritto di seguito.

In genere, si gestiscono macchine virtuali da un computer remoto, anziché in un server host in un cluster. Questo computer remoto viene chiamato computer di gestione.

Nota

Quando si eseguono comandi di PowerShell da un computer di gestione, includere il parametro -ComputerName con il nome del server host che si sta gestendo. I nomi NetBIOS, gli indirizzi IP e i nomi di dominio completi sono consentiti.

Per la documentazione di riferimento completa per la gestione delle macchine virtuali tramite PowerShell, vedere Informazioni di riferimento su Hyper-V.

Creare una VM

Il New-VM cmdlet viene usato per creare una nuova macchina virtuale. Per informazioni dettagliate sull'utilizzo, vedere la documentazione di riferimento di New-VM .

Di seguito sono riportate le impostazioni che è possibile specificare quando si crea una nuova macchina virtuale con un disco rigido virtuale esistente, dove:

  • -Nome è il nome specificato per la macchina virtuale che si sta creando.

  • -MemoryStartupBytes è la quantità di memoria disponibile per la macchina virtuale all'avvio.

  • -BootDevice è il dispositivo a cui viene avviata la macchina virtuale. In genere si tratta di un disco rigido virtuale (VHD), un file .iso per l'avvio basato su DVD o una scheda di rete (NetworkAdapter) per l'avvio di rete.

  • -VHDPath è il percorso per il disco di macchina virtuale che si desidera utilizzare.

  • -Path è il percorso per archiviare i file di configurazione macchina virtuale.

  • -Generazione è la generazione della macchina virtuale. Utilizzare la generazione 1 per il disco rigido Virtuale e di generazione 2 per VHDX.

  • -SwitchName è il nome del commutatore virtuale che si vuole usare la macchina virtuale per connettersi ad altre macchine virtuali o alla rete. Ottenere il nome del commutatore virtuale usando Get-VMSwitch. Ad esempio:

Comando completo come indicato di seguito per la creazione di una macchina virtuale denominata VM1:

New-VM -ComputerName Server1 -Name VM1 -MemoryStartupBytes <Memory> -BootDevice <BootDevice> -VHDPath <VHDPath> -Path <Path> -Generation <Generation> -SwitchName <Switch name>

Nell'esempio successivo viene creata una macchina virtuale di seconda generazione con 4 GB di memoria. Viene avviato dalla cartella VMs\Win10.vhdx nella directory corrente e il commutatore virtuale denominato ExternalSwitch. Nella cartella VMData sono archiviati i file di configurazione macchina virtuale.

New-VM -ComputerName Server1 -Name VM1 -MemoryStartupBytes 4GB -BootDevice VHD -VHDPath .\VMs\Win10.vhdx -Path .\VMData -Generation 2 -SwitchName ExternalSwitch

I parametri seguenti vengono usati per specificare dischi rigidi virtuali.

Per creare una macchina virtuale con un nuovo disco rigido virtuale, sostituire il parametro -VHDPath dall'esempio precedente con -NewVHDPath e aggiungere il parametro -NewVHDSizeBytes , come illustrato di seguito:

New-VM -ComputerName Server1 -Name VM1 -MemoryStartupBytes 4GB -BootDevice VHD -NewVHDPath .\VMs\Win10.vhdx -Path .\VMData -NewVHDSizeBytes 20GB -Generation 2 -SwitchName ExternalSwitch  

Per creare una macchina virtuale con un nuovo disco virtuale che si avvia a un'immagine del sistema operativo, vedere l'esempio di PowerShell in Creare una macchina virtuale procedura dettagliata per Hyper-V in Windows 10.

Ottenere un elenco di macchine virtuali

Nell'esempio seguente viene restituito un elenco di tutte le macchine virtuali in Server1.

Get-VM -ComputerName Server1

Nell'esempio seguente viene restituito un elenco di tutte le macchine virtuali in esecuzione in un server aggiungendo un filtro usando il Where-Object comando . Per altre informazioni, vedere Uso della documentazione where-Object .

Get-VM -ComputerName Server1 | Where-Object -Property State -eq "Running"

Nell'esempio successivo viene restituito un elenco di tutte le macchine virtuali di arresto nel server.

Get-VM -ComputerName Server1 | Where-Object -Property State -eq "Off"

Avviare e arrestare una macchina virtuale

Usare i Start-VM comandi e Stop-VM per avviare o arrestare una macchina virtuale. Per informazioni dettagliate, vedere la documentazione di riferimento di Start-VM e Stop-VM .

Nell'esempio seguente viene illustrato come avviare una macchina virtuale denominata VM1:

Start-VM -Name VM1 -ComputerName Server1

Nell'esempio seguente viene illustrato come arrestare una macchina virtuale denominata TestVM:

Stop-VM -Name VM1 -ComputerName Server1

Spostare una macchina virtuale

Il Move-VM cmdlet sposta una macchina virtuale in un server diverso. Per altre informazioni, vedere la documentazione di riferimento di Move-VM .

Nell'esempio seguente viene illustrato come spostare una macchina virtuale in Server2 quando la macchina virtuale viene archiviata in una condivisione SMB in Server1:

Move-VM -ComputerName Server1 -Name VM1 -DestinationHost Server2

Nell'esempio seguente viene illustrato come spostare una macchina virtuale in Server2 da Server1 e spostare tutti i file associati alla macchina virtuale in D:\VM_name nel computer remoto:

Move-VM -ComputerName Server1 -Name VM1 -DestinationHost Server2 -IncludeStorage -DestinationStoragePath D:\VM_name

Importare o esportare una macchina virtuale

I Import-VM cmdlet e Export-VM importano ed esportano una macchina virtuale. Di seguito sono riportati alcuni esempi. Per altre informazioni, vedere la documentazione di riferimento import-VM and Export-VM .

Nell'esempio seguente viene illustrato come importare una macchina virtuale dal file di configurazione. La macchina virtuale è registrata sul posto, quindi i relativi file non vengono copiati:

Import-VM -ComputerName Server1 -Name VM1 -Path 'C:\<vm export path>\2B91FEB3-F1E0-4FFF-B8BE-29CED892A95A.vmcx'

Nell'esempio seguente viene esportata una macchina virtuale nella radice dell'unità D:

Export-VM -ComputerName Server1 -Name VM1 -Path D:\

Rinominare una macchina virtuale

Il Rename-VM cmdlet viene usato per rinominare una macchina virtuale. Per informazioni dettagliate, vedere la documentazione di riferimento di rinomina-macchina virtuale .

Nell'esempio seguente viene rinominata VM1 in VM2 e viene visualizzata la macchina virtuale rinominata:

Rename-VM -ComputerName Server1 -Name VM1 -NewName VM2

Creare il checkpoint di una macchina virtuale

Il Checkpoint-VM cmdlet viene usato per creare un checkpoint per una macchina virtuale. Per informazioni dettagliate, vedere la documentazione di riferimento di Checkpoint-VM .

Nell'esempio seguente viene creato un checkpoint denominato BeforeInstallingUpdates per la macchina virtuale denominata Test.

Checkpoint-VM -ComputerName Server1 -Name VM1 -SnapshotName BeforeInstallingUpdates

Creare un disco rigido virtuale per una macchina virtuale

Il New-VHD cmdlet viene usato per creare un nuovo disco rigido virtuale per una macchina virtuale. Per informazioni dettagliate su come usarla, vedere la documentazione di riferimento sul disco rigido virtuale nuovo .

Nell'esempio seguente viene creato un disco rigido virtuale dinamico in formato VHDX con dimensioni pari a 10 GB. L'estensione del nome file determina il formato e il tipo predefinito dinamico viene usato perché non viene specificato alcun tipo.

Get-ClusterGroup

Aggiungere una scheda di rete a una macchina virtuale

Il Add-VMNetworkAdapter cmdlet viene usato per aggiungere una scheda di rete virtuale a una macchina virtuale. Di seguito sono riportati alcuni esempi. Per informazioni dettagliate su come usarla, vedere la documentazione di riferimento add-VMNetworkAdapter .

Nell'esempio seguente viene aggiunta una scheda di rete virtuale denominata Redmond NIC1 a una macchina virtuale denominata VM1:

Add-VMNetworkAdapter -ComputerName Server1 -VMName VM1 -Name "Redmond NIC1"

Questo esempio aggiunge una scheda di rete virtuale a una macchina virtuale denominata VM1 e la connette a un commutatore virtuale denominato Rete:

Add-VMNetworkAdapter -ComputerName Server1 -VMName VM1 -SwitchName Network

Creare un commutatore virtuale per una macchina virtuale

Il New-VMSwitch cmdlet viene usato per un nuovo commutatore virtuale in un host della macchina virtuale. Per informazioni dettagliate su come usarla, vedere la documentazione di riferimento di New-VMSwitch .

Nell'esempio seguente viene creata una nuova opzione denominata "commutatore QoS", che viene associata a una scheda di rete denominata Connessione Ethernet cablata 3 e supporta la larghezza di banda minima basata sul peso.

New-VMSwitch "QoS Switch" -NetAdapterName "Wired Ethernet Connection 3" -MinimumBandwidthMode Weight

Impostare la memoria per una macchina virtuale

Il Set-VMMemory cmdlet viene usato per configurare la memoria di una macchina virtuale. Per informazioni dettagliate su come usarla, vedere la documentazione di riferimento Set-VMMemory .

L'esempio seguente abilita la memoria dinamica in una macchina virtuale denominata VM1, imposta il valore minimo, l'avvio e la memoria massima, la priorità di memoria e il relativo buffer.

Set-VMMemory -ComputerName Server1 -Name VM1 -DynamicMemoryEnabled $true -MinimumBytes 64MB -StartupBytes 256MB -MaximumBytes 2GB -Priority 80 -Buffer 25

Impostare processori virtuali per una macchina virtuale

Il Set-VMProcessor cmdlet viene usato per configurare i processori virtuali per una macchina virtuale. Per informazioni dettagliate su come usarla, vedere la documentazione di riferimento set-VMProcessor .

Nell'esempio seguente viene configurata una macchina virtuale denominata VM1 con due processori virtuali, una riserva del 10%, un limite pari al 75%e un peso relativo pari a 200.

Set-VMProcessor -ComputerName Server1 -Name VM1 -Count 2 -Reserve 10 -Maximum 75 -RelativeWeight 200

Rimuovere una macchina virtuale

Per rimuovere o eliminare una macchina virtuale e le risorse, trovare prima di tutto usando il cmdlet seguente:

Get-ClusterGroup

Eseguire quindi il cmdlet seguente per ogni macchina virtuale che si vuole rimuovere dal cluster:

Remove-ClusterGroup -RemoveResources -Name VM1

Passaggi successivi

È anche possibile creare e gestire macchine virtuali usando Windows Admin Center. Per altre informazioni, vedere Windows Admin Center.