Gestire macchine virtuali Windows con PowerShell Direct
È possibile utilizzare PowerShell Direct per la gestione remota di una macchina virtuale Windows 10, Windows Server 2016 o Windows Server 2019 da un host Hyper-V Windows 10, Windows Server 2016 o Windows Server 2019. PowerShell Direct consente la gestione di Windows PowerShell all'interno di una macchina virtuale indipendentemente dalla configurazione di rete o dalle impostazioni di gestione remota dell'host di Hyper-V o della macchina virtuale. Questo rende più semplice per gli amministratori di Hyper-V automatizzare e basare su script la gestione e la configurazione delle macchine virtuali.
È possibile eseguire PowerShell Direct in due modi:
Creare e uscire da una sessione PowerShell Direct usando cmdlet PSSession
Eseguire uno script o un comando con il cmdlet Invoke-Command
Se è necessario gestire macchine virtuali di versioni precedenti, usare Connessione macchina virtuale (VMConnect) o configurare una rete virtuale per la macchina virtuale.
Creare e uscire da una sessione PowerShell Direct usando cmdlet PSSession
Nell'host di Hyper-V aprire Windows PowerShell come amministratore.
Usare il cmdlet Enter-PSSession per connettersi a una macchina virtuale. Eseguire uno dei comandi seguenti per creare una sessione utilizzando il nome o il GUID della macchina virtuale:
Enter-PSSession -VMName <VMName>
Enter-PSSession -VMId <VM GUID>
Digitare le credenziali per la macchina virtuale.
Eseguire tutti i comandi necessari. Questi comandi vengono eseguiti nella macchina virtuale con cui è stata creata la sessione.
Una volta completata questa operazione, usare Exit-PSSession per chiudere la sessione.
Exit-PSSession
Eseguire uno script o un comando con il cmdlet Invoke-Command
È possibile usare il cmdlet Invoke-Command per eseguire un set predeterminato di comandi nella macchina virtuale. Di seguito è riportato un esempio di come è possibile utilizzare il cmdlet Invoke-Command, dove PSTest è il nome della macchina virtuale e lo script da eseguire (foo.ps1) si trova nella cartella script nell'unità C:
Invoke-Command -VMName PSTest -FilePath C:\script\foo.ps1
Per eseguire un solo comando, usare il parametro -ScriptBlock:
Invoke-Command -VMName PSTest -ScriptBlock { cmdlet }
Quali sono i requisiti per usare PowerShell Direct?
Per creare una sessione di PowerShell Direct in una macchina virtuale
La macchina virtuale deve essere eseguita localmente nell'host e avviata.
È necessario accedere al computer host come amministratore di Hyper-V.
È necessario specificare credenziali utente valide per la macchina virtuale.
Il sistema operativo host deve eseguire almeno Windows 10 o Windows Server 2016.
La macchina virtuale deve eseguire almeno Windows 10 o Windows Server 2016.
È possibile usare il cmdlet Get-VM per verificare che le credenziali usate abbiano il ruolo di amministratore di Hyper-V e ottenere un elenco delle macchine virtuali eseguite in locale nell'host e avviate.