PowerShell Direct w Hyper-V 2016

PowerShell Direct -jest to nowa funkcjonalność programu PowerShell w systemach Windows Server 2016 i Windows 10, która pozwala utworzyć bezpośrednią lokalną sesję PowerShell z dowolną maszyną wirtualną uruchomioną na hoście Hyper-V, a połączenie nie odbywa się za pośrednictwem sieci, ale przez magistralę VM magistrali wewnętrznej. Dlatego administrator funkcji Hyper-V może zarządzać maszynami wirtualnymi za pomocą programu PowerShell nawet w izolowanym systemie bez wirtualnych kart sieciowych.

Podstawowe wymagania dotyczące korzystania z Powershell Direct:

  • Jako system operacyjny Hyper-V może być używany Windows Server 2016 lub Windows 10
  • Gość VM musi działać na tym samym hoście Hyper-V, z którego nawiązane jest połączenie (tj. Połączenie lokalne)
  • System operacyjny gościa maszyny wirtualnej musi również być Windows Server 2016 / Windows 10
  • Na hoście Hyper-V konsola Powershell musi działać jako administrator
  • Aby połączyć się z systemem-gościem, maszyna wirtualna będzie musiała podać nazwę użytkownika i hasło konta tej maszyny wirtualnej

Poprzednio administrator mógł wykonywać polecenia na maszynie wirtualnej w Hyper-V za pośrednictwem sieci  Wywołaj-Dowodzenie lub Enter-Pssession. Jako parametr do połączenia ze zdalną maszyną wirtualną określ jej nazwę sieci (-ComputerName).

Na przykład możesz uzyskać listę uruchomionych procesów na zdalnym serwerze w następujący sposób:
Invoke-Command -ComputerName WS16-Core -ScriptBlock Get-Process

Lub utwórz nową interaktywną sesję PS ze zdalnym serwerem:
Enter-PSSession -ComputerName WS16-Core

W takim scenariuszu nie można ustanowić sesji PS z maszyną wirtualną odłączoną od przełącznika wirtualnego znajdującego się w systemie izolowanym lub chronionym zaporą. Cała kontrola odbywa się tylko za pośrednictwem konsoli graficznej Hyper-V.

Aby połączyć się z taką maszyną wirtualną gościa za pomocą Powershell Direct, nie jest używana nazwa sieciowa systemu operacyjnego gościa, ale nazwa lub identyfikator GUID maszyny wirtualnej w Hyper-V. Podczas łączenia za pomocą Powershell Direct możesz także użyć Enter-PSSession, aby utworzyć interaktywną sesję Powershell lub Invoke-Command, aby uruchomić pojedyncze polecenie lub skrypt.

  1. Pobierz listę maszyn wirtualnych na hoście funkcji Hyper-V: Get-VM | Wybierz imię
  2. Uruchom interaktywną sesję PowerShell: Enter-PSSession -VMName „win10 Compact PSDirect” -Credential (Get-Credential)
  3. Aby zakończyć sesję, wykonaj: Exit-PSSession

Aby uruchomić pojedyncze polecenie lub skrypt, użyj polecenia Invoke-Command:

Invoke-Command -VMId -FilePath C: \ script \ some_script.ps1

Na przykład, jeśli chcesz skopiować określony plik do izolowanej maszyny wirtualnej za pomocą Powershell Direct, użyj tego skryptu.

Utwórz nową sesję PSSession1:

$ PSSession1 = New-PSSession -VMId -Credential (Get-Credential)

Skopiuj plik na maszynę wirtualną:

Copy-Item -ToSession $ PSSession1 -Path C: \ win10.iso -Destination D: \ ISO \

Skopiuj plik z maszyny wirtualnej:

Copy-Item -FromSession $ PSSession1 -Path C: \ result_ data.txt -Destination C: \ vm_data \

Jak widać, korzystanie z Powershell Direct jest dość proste i wygodne. Podobnie jak większość innych innowacji w systemie Windows Server 2016, Powershell Direct ma przede wszystkim na celu poprawę funkcjonalności systemu z punktu widzenia dostawców usług / chmury, którzy zapewniają usługi maszyn wirtualnych.