Administración de máquinas virtuales Windows con PowerShell Direct

Se aplica a: Windows Server 2022, Windows 10, Windows Server 2016, Windows Server 2019

Puede usar PowerShell Direct para administrar de forma remota una máquina virtual Windows 10, Windows Server 2016 o Windows Server 2019 desde un host de Hyper-V con Windows 10, Windows Server 2016 o Windows Server 2019. PowerShell Direct permite la administración de Windows PowerShell dentro de una máquina virtual, independientemente de la configuración de la red o la configuración de administración remota en el host de Hyper-V o la máquina virtual. Esto facilita a los administradores de Hyper-V la automatización y creación de scripts de configuración y administración de las máquinas virtuales.

Hay dos maneras de ejecutar PowerShell Direct:

  • Creación y cierre de una sesión de PowerShell Direct mediante cmdlets de PSSession

  • Ejecutar un script o un comando con el cmdlet Invoke-Command

Si está administrando máquinas virtuales antiguas, use la opción Conexión a máquina virtual (VMConnect) o configure una red virtual para la máquina virtual.

Crear y cerrar una sesión de PowerShell Direct mediante cmdlets PSSession

  1. En el host de Hyper-V, abra Windows PowerShell como administrador.

  2. Use el cmdlet Enter-PSSession para conectarse a la máquina virtual. Ejecute uno de los siguientes comandos para crear una sesión mediante el GUID o el nombre de la máquina virtual:

    Enter-PSSession -VMName <VMName>
    
    Enter-PSSession -VMId <VM GUID>
    
  3. Escriba sus credenciales para la máquina virtual.

  4. Ejecute los comandos que necesite. Estos comandos se ejecutan en la máquina virtual con la que creó la sesión.

  5. Cuando haya terminado, use Exit-PSSession para cerrar la sesión.

    Exit-PSSession
    

Ejecución de un script o un comando con el cmdlet Invoke-Command

Puede usar el cmdlet Invoke-Command para ejecutar un conjunto predeterminado de comandos en la máquina virtual. Este es un ejemplo de cómo puede usar el cmdlet Invoke-Command, donde PSTest es el nombre de la máquina virtual y el script que se ejecutará (foo.ps1) está en la carpeta script de la unidad C:/:

Invoke-Command -VMName PSTest  -FilePath C:\script\foo.ps1

Para ejecutar un único comando, use el parámetro -ScriptBlock:

Invoke-Command -VMName PSTest  -ScriptBlock { cmdlet }

¿Qué se necesita para usar PowerShell Direct?

Para crear una sesión de PowerShell Direct en una máquina virtual,

  • La máquina virtual debe ejecutarse localmente en el host y estar iniciada.

  • Debe iniciar sesión en el equipo host como un administrador de Hyper-V.

  • Debe facilitar credenciales de usuario válidas para la máquina virtual.

  • El sistema operativo host debe ejecutar al menos Windows 10 o Windows Server 2016.

  • La máquina virtual debe ejecutar al menos Windows 10 o Windows Server 2016.

Puede usar el cmdlet Get-VM para comprobar que las credenciales que usa tengan el rol de administrador de Hyper-V y para obtener una lista de las máquinas virtuales que se ejecutan localmente en el host y están iniciadas.

Vea también

Enter-PSSessionExit-PSSessionInvoke-Command