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.
- Pobierz listę maszyn wirtualnych na hoście funkcji Hyper-V:
Get-VM | Wybierz imię
- Uruchom interaktywną sesję PowerShell:
Enter-PSSession -VMName „win10 Compact PSDirect” -Credential (Get-Credential)
- 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.