PowerShell Direct в Hyper-V 2016

PowerShell Direct -това е нова функционалност на PowerShell в Windows Server 2016 и Windows 10, която ви позволява да създадете директна локална сесия PowerShell с всяка виртуална машина, работеща на хоста на Hyper-V, а връзката не е през мрежата, а през вътрешната шина VM. По този начин, Hyper-V администратор може да управлява VM, използвайки PowerShell, дори на изолирана система без адаптери за виртуална мрежа.

Основни изисквания за използване на Powershell Direct:

  • Като хост ОС Hyper-V може да се използва Windows Server 2016 или Windows 10
  • Гостът VM трябва да работи на същия хост Hyper-V, от който се осъществява връзката (т.е. локална връзка)
  • Гост ОС на виртуалната машина също трябва да бъде Windows Server 2016 / Windows 10
  • На хост на Hyper-V конзолата Powershell трябва да работи като администратор
  • За да се свърже с гост OS, виртуалната машина ще трябва да посочи потребителското име и паролата на акаунта на тази VM

Преди това администратор може да изпълнява команди само на виртуална машина в Hyper-V през мрежа, използвайки  Invoke-команда или Въведете-PSSession. Като параметър за свързване към отдалечен VM посочете мрежовото му име (-ComputerName).

Например, можете да получите списък на изпълняваните процеси на отдалечен сървър като този:
Invoke-Command -ComputerName WS16-Core -ScriptBlock Get-Process

Или създайте нова интерактивна PS сесия с отдалечен сървър:
Въведете-PSSession -ComputerName WS16-Core

При такъв сценарий PS сесията не може да бъде установена с VM, изключен от виртуалния превключвател, разположен в изолирана или защитена от защитна стена система. Цялото управление се осъществява само чрез графичната конзола Hyper-V.

За да се свържете с такъв гост VM с помощта на Powershell Direct, не се използва мрежовото име на гост операционната система, а името или GUID на VM в Hyper-V. Когато се свързвате през Powershell Direct, можете също да използвате Enter-PSSession, за да създадете интерактивна сесия на Powershell или Invoke-Command, за да стартирате една команда или скрипт.

  1. Вземете списъка на виртуалните машини на хоста на Hyper-V: Get-VM | Изберете име
  2. Стартирайте интерактивната сесия PowerShell: Enter-PSSession -VMName "win10 Compact PSDirect" -кредитив (Get-Credences)
  3. За да прекратите сесията, направете: Exit-PSSession

За да стартирате една команда или скрипт, използвайте Invoke-Command:

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

Например, ако трябва да копирате определен файл в изолиран VM чрез Powershell Direct, използвайте този скрипт.

Създайте нова сесия PSSession1:

$ PSSession1 = New-PSSession -VMId -кредитив (Get-Credential)

Копирайте файла на виртуалната машина:

Copy-Item -ToSession $ PSSession1 -Path C: \ win10.iso -Определение D: \ ISO \

Копирайте файла от VM:

Copy-Item -FromSession $ PSSession1 -Path C: \ result_ data.txt -Определение C: \ vm_data \

Както можете да видите, използването на Powershell Direct е доста просто и удобно. Подобно на повечето други новости в Windows Server 2016, Powershell Direct е насочен основно към подобряване на функционалността на системата от гледна точка на доставчици на услуги / облак, които предоставят услуги за виртуални машини.