hyper-v-direct-ssh -это модуль PowerShell, предназначенный для управления виртуальными машинами Hyper-V (VMS) и установления прямых соединений SSH с ними. Этот модуль предоставляет функции для запуска и остановки виртуальных машин, получения информации о виртуальной машине и обеспечения сценария запуска с привилегиями администратора.
Убедитесь, что у вас есть административные привилегии в вашей системе. Сценарий требует повышенных разрешений для управления Hyper-V и выполнять определенные команды.
Убедитесь, что Hyper-V включен в вашей системе. Вы можете включить Hyper-V, используя следующие шаги:
Enable-WindowsOptionalFeature - Online - FeatureName Microsoft - Hyper - V - AllСценарий требует PowerShell версии 7 или более. Следуйте этим шагам для установки или обновления PowerShell:
Убедитесь, что клиент SSH установлен в вашей системе. Вы можете установить клиент OpenSsh, выполнив эти шаги:
Add-WindowsCapability - Online - Name OpenSSH.Client * ssh -Vbrew install opensshОткрытый терминал.
Запустите следующую команду:
sudo apt-get install openssh-clientили для распределений на основе RPM:
sudo yum install openssh-clientsУбедитесь, что ваши виртуальные машины настроены для получения IP -адреса и что они доступны через SSH. Проверьте настройки сети и подключение перед запуском сценария.
Сохраните скрипт как VMManagement.ps1 на вашей локальной машине. Убедитесь, что путь файла доступен, и отметьте путь для запуска сценария.
VMManagement.ps1 ..VMManagement.ps1 Чтобы использовать модуль, сохраните скрипт как VMManagement.ps1 и запустите его с помощью PowerShell. Убедитесь, что у вас есть необходимые административные привилегии, и что Hyper-V включен в вашей системе.
.VMManagement.ps1Get-Run-AsAdministratorОбеспечивает запуск сценария с привилегиями администратора.
Параметры:
ScriptPath : Путь к сценарию, который необходимо запустить в качестве администратора.Пример:
Get-Run - AsAdministrator - ScriptPath " C:PathToScript.ps1 " Enable-HyperVПроверяет, включен ли Hyper-V в системе и включает в себя, если нет.
Пример:
Enable-HyperV Test-PwshVersionПроверяет, является ли текущая версия PowerShell 7 или более.
Пример:
Test-PwshVersion Get-VMListПолучает список имен виртуальных машин.
Пример:
$vms = Get-VMList Get-VMNameПомогает пользователю выбрать виртуальную машину из списка.
Пример:
$vmName = Get-VMName Get-UserNameПомогает пользователю ввести имя пользователя для SSH.
Пример:
$username = Get-UserName Start-VMInstanceЗапускает указанную виртуальную машину.
Параметры:
vmName : имя виртуальной машины для начала.Пример:
$vm = Start-VMInstance - vmName " MyVM " Add-DashДобавляет тире в строку каждые два символа.
Параметры:
str : строка, в которую будут добавлены тире.Пример:
$dashedString = Add-Dash - str " A1B2C3D4 " Get-VMIPПолучает IP -адрес указанной виртуальной машины.
Параметры:
vmObject : объект VM, для которого должен быть извлечен IP -адрес.Пример:
$ipAddress = Get-VMIP - vmObject $vm Stop-VMInstanceОстанавливает указанную виртуальную машину.
Параметры:
vmName : имя виртуальной машины, чтобы остановиться.Пример:
Stop-VMInstance - vmName " MyVM " Invoke-SSHConnectionИнициирует соединение SSH с указанной виртуальной машиной.
Параметры:
user : имя пользователя для соединения SSH.vmIP : IP -адрес виртуальной машины.Пример:
Invoke-SSHConnection - user " username " - vmIP " 192.168.1.100 " Get-VMHeartbeatПроверяет состояние сердцебиения указанной виртуальной машины.
Параметры:
vmObject : объект виртуальной машины, для которого должен быть проверен статус сердцебиения.Пример:
$heartbeat = Get-VMHeartbeat - vmObject $vm