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, за да стартирате една команда или скрипт.
- Вземете списъка на виртуалните машини на хоста на Hyper-V:
Get-VM | Изберете име
- Стартирайте интерактивната сесия PowerShell:
Enter-PSSession -VMName "win10 Compact PSDirect" -кредитив (Get-Credences)
- За да прекратите сесията, направете:
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 е насочен основно към подобряване на функционалността на системата от гледна точка на доставчици на услуги / облак, които предоставят услуги за виртуални машини.