Gestire le macchine virtuali Windows con PowerShell Direct

Si applica a: Windows Server 2022, Windows 10, Windows Server 2016, Windows Server 2019

È possibile usare PowerShell Direct per gestire in remoto una macchina virtuale Windows 10, Windows Server 2016 o Windows Server 2019 da un host Windows 10, Windows Server 2016 o Windows Server 2019 Hyper-V. 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 nell'host Hyper-V o nella 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 ed uscire da una sessione di PowerShell Direct usando i cmdlet PSSession

  • Eseguire script o 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 ed uscire da una sessione di PowerShell Direct usando i cmdlet PSSession

  1. Nell'host di Hyper-V aprire Windows PowerShell come amministratore.

  2. Usare il cmdlet Enter-PSSession per connettersi alla macchina virtuale. Eseguire uno dei comandi seguenti per creare una sessione usando il nome o il GUID della macchina virtuale:

    Enter-PSSession -VMName <VMName>
    
    Enter-PSSession -VMId <VM GUID>
    
  3. Digitare le credenziali per la macchina virtuale.

  4. Eseguire tutti i comandi necessari. Questi comandi vengono eseguiti nella macchina virtuale con cui è stata creata la sessione.

  5. Al termine, usare Exit-PSSession per chiudere la sessione.

    Exit-PSSession
    

Eseguire script o 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 }

Cosa è necessario 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 in esecuzione localmente nell'host e avviato.

Vedi anche

Enter-PSSession Exit-PSSessionInvoke-Command