Com a chegada do Windows Server 2016 e do Windows 10, a Microsoft introduziu um novo recurso interessante, muito atrativo para todos que desejam efetuar tarefas remotas com máquinas virtuais. O PowerShell Direct permite que os administradores de TI executem a sessão do PowerShell dentro de uma máquina virtual a partir do Hyper-V em um modo direto, sem rede ou similar. Isso significa invocar um script também se a rede não estiver disponível; nos mesmos casos, os hospedeiros são separados do servidor/cliente ou quando não há como abrir uma sessão remota de políticas de segurança do PowerShell. Por esse motivo, o PowerShell Direct é um “bom para saber”.

Requisitos

Para usar o PowerShell Direct, é necessário verificar esses requisitos:

  • A máquina virtual deve executar o Windows 10 ou o Windows Server 2016
  • A máquina virtual deve ser executada no mesmo hospedeiro que deseja usar para abrir a sessão
  • A máquina virtual deve ter pelo menos um perfil de usuário válido configurado
  • A sessão deve ser aberta como administrador local do hospedeiro do Hyper-V
  • É necessário inserir credenciais válidas para a máquina virtual

Crie uma sessão remota

Para abrir uma nova sessão remota, use o comando Enter-PSSession -VMName yourvm- como mostrado na figura 1.

2019_01_03_directps-01

Figura 1 – Nova Sessão PS

Quando estiver dentro da sessão, poderá trabalhar na máquina virtual e executar os cmdlets do PowerShell da mesma maneira que em ambientes locais; isso significa poder usar os módulos PS instalados; como mostrado na figura 2, podemos usar os comandos do docker sem problemas, embora a função não esteja presente no hospedeiro do Hyper-V.

2019_01_03_directps-02

Figura 2 – Comandos remotos

NB: Tenha em mente que toda a conexão baseada em Enter-PSSession é temporária e isso significa que ao fechar a janela, será necessário inserir novamente as credenciais.

Executar Comandos Complexos

A conexão clássica pode ser usada para executar tarefas fáceis e simples, enquanto se precisar executar um script avançado, é possível usar o Invoke-Command . Esse cmdlet é perfeito para executar um complexo de scripts armazenado em um repositório (local ou remotamente). É possível usar dois tipos de maneiras:

  • Comando : Invoke-Command -VMName nomevm -ScriptBlock {Get-Service}
  • Script : Invoke-Command nome-VMName -FilePath “C: \ hyperv-folder \ script.ps1″

2019_01_03_directps-03

Figura 3 – Comando Invoke

Copiar arquivos

Não apenas comando ou script, mas também uma maneira de transferir arquivos do host para a máquina virtual. Isso pode ser feito com o cmdlet Copy-Item, mas é necessário abrir uma sessão persistente para evitar a interrupção no caso de você fechar a janela; O objetivo é usar a mesma sessão todas as vezes sem inserir novamente as credenciais. Isto é um exemplo:

$ VM = New-PSSession-NomName VMVM -Credential (Get-Credential)

Copiar-Item -ToSession $ VM -Path C: \ hyperv-folder \ app.exe -Destino C: \ guest-vm \

2019_01_03_directps-04

Figura 4 – Cópia de Arquivo

O desempenho por trás dessa tarefa é muito interessante porque graças ao VMBus, podemos pular todos os drivers e as camadas para permitir a comunicação. O resultado é uma cópia em alta velocidade, mas não se esqueça de considerar que tipo de arquivo você deseja transferir e também o desempenho da VM (um arquivo .vhdx localizado no SSD é muito mais rápido que o SATA).

Conclusão

O PowerShell Direct permite que os administradores de TI executem e automatizem as tarefas de gerenciamento sem a necessidade de interagir com o sistema operacional via GUI.

(Inglês, Italiano, Francês, Alemão)



PowerShell Direct: uma nova maneira de gerenciar sua MV
Iperius Backup Brasil
*****************************************

PLEASE NOTE: if you need technical support or have any sales or technical question, don't use comments. Instead open a TICKET here: https://support.iperius.net

*****************************************

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*****************************************

PLEASE NOTE: if you need technical support or have any sales or technical question, don't use comments. Instead open a TICKET here: https://support.iperius.net

*****************************************