PowerShell Direct dalam Hyper-V 2016

PowerShell Direct -ini adalah fungsionalitas PowerShell baru di Windows Server 2016 dan Windows 10, yang memungkinkan Anda untuk membuat sesi PowerShell lokal langsung dengan mesin virtual yang berjalan pada host Hyper-V, dan koneksi tidak melalui jaringan, tetapi melalui bus VM internal bus. Dengan demikian, administrator Hyper-V dapat mengelola VM menggunakan PowerShell bahkan pada sistem yang terisolasi tanpa adapter jaringan virtual.

Persyaratan dasar untuk menggunakan Powershell Direct:

  • Sebagai tuan rumah OS Hyper-V dapat digunakan Windows Server 2016 atau Windows 10
  • VM tamu harus dijalankan pada host Hyper-V yang sama dari mana koneksi dibuat (mis. Koneksi lokal)
  • OS tamu dari mesin virtual juga harus Windows Server 2016 / Windows 10
  • Pada host Hyper-V, konsol Powershell harus dijalankan sebagai administrator
  • Untuk terhubung ke OS tamu, mesin virtual perlu menentukan nama pengguna dan kata sandi akun VM ini

Sebelumnya, seorang administrator hanya bisa menjalankan perintah pada mesin virtual di Hyper-V melalui jaringan  Panggil-Perintah atau Masuk-Pssession. Sebagai parameter untuk menghubungkan ke VM jarak jauh, tentukan nama jaringannya (-ComputerName).

Misalnya, Anda bisa mendapatkan daftar proses yang berjalan di server jauh seperti ini:
Invoke-Command -ComputerName WS16-Core -ScriptBlock Get-Process

Atau buat sesi PS interaktif baru dengan server jarak jauh:
Masukkan-PSSession -ComputerName WS16-Core

Dalam skenario seperti itu, sesi PS tidak dapat dibuat dengan VM terputus dari saklar virtual yang terletak di sistem yang dilindungi atau firewall yang dilindungi. Semua kontrol dilakukan hanya melalui konsol grafis Hyper-V.

Untuk menyambung ke VM tamu seperti itu menggunakan Powershell Direct, itu bukan nama jaringan OS tamu yang digunakan, tetapi nama atau GUID dari VM di Hyper-V. Saat menghubungkan melalui Powershell Direct, Anda juga dapat menggunakan Enter-PSSession untuk membuat sesi Powershell interaktif, atau Invoke-Command untuk menjalankan satu perintah atau skrip.

  1. Dapatkan daftar VM di host Hyper-V: Dapatkan-VM | Pilih nama
  2. Jalankan sesi PowerShell interaktif: Enter-PSSession -VMName "win10 Compact PSDirect" -Kredensial (Dapatkan-Kredensial)
  3. Untuk mengakhiri sesi, lakukan: Keluar dari PSSession

Untuk menjalankan satu perintah atau skrip, gunakan Invoke-Command:

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

Misalnya, jika Anda perlu menyalin file tertentu ke VM terisolasi melalui Powershell Direct, gunakan skrip ini.

Buat sesi PSSession1 baru:

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

Salin file ke mesin virtual:

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

Salin file dari VM:

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

Seperti yang Anda lihat, menggunakan Powershell Direct cukup sederhana dan nyaman. Seperti kebanyakan inovasi lain di Windows Server 2016, Powershell Direct terutama ditujukan untuk meningkatkan fungsionalitas sistem dari sudut pandang penyedia layanan / cloud yang menyediakan layanan mesin virtual.