Данный продукт является бесплатным и представляет собой альфа версию на данный момент. Мы рады услышать пожелания, поэтому направляйте их на simankov@octet.spb.ru

В процессе разработки сейчас находится следующий функционал:

-Создание виртуальной машины

-Выполнение удаленных команд на хосте

Скачать пакет .msi

документация

Установка службы

Установку ПО можно производить как и на сам хост Hyper-V, так и на любую машину в домене.

Никаких особых настроек установщика нет, стандартные шаги инсталятора.

При установке служба устанавливается от имени системы, но для доступа к хостам в домене нужно изменить пользователя для запуска на вашу доменную учетную запись

После установки сервис доступен по адресу http://ip-адрес:8088

Для использования https вы можете использовать проксирующий сервер перед службой (IIS, apache, nging etc)

После установки перейдите в C:\Program Files (x86)\Octet\HVsvc и откройте HVserver.exe.config

Вам требуется изменить параметр accesstoken для дальнейшего использования и перезапустить службу.

В настоящий момент используются только GET-запросы для получения данных от сервиса

Общий формат запроса

Запрос должен содержать токен (параметр key) из настроек службы и параметр action, который определяет действие

http://127.0.0.1:8088/?key=sdfoj3429mgfi823jhrniefj8123423ieufmwiefm239854r234&action=list

Данный запрос вернет список виртуальных машин с сервера localhost. Для получения данных с другого сервера требуется указать параметр server
Ответ json:

Adapters: [{Name: "Тест", MacAddress: "00155DB45402", SwitchName: null}]
AdministratorPassword: null
BootFromCD: true
CpuCores: 2
CpuUsage: 0
CreatedDate: "0001-01-01T00:00:00"
CurrentTaskId: null
Disks: [{FileSize: 33554432, MaxInternalSize: 161061273600, ParentPath: null, DiskType: 3,…}]
Domain: null
DvdDriveInstalled: false
DynamicMemory: null
ExternalNetworkEnabled: false
ExternalNicMacAddress: null
ExternalSwitchId: null
Generation: 2
HddLogicalDisks: null
HddSize: 0
Heartbeat: 0
Hostname: null
Id: 0
LegacyNetworkAdapter: false
ManagementNetworkEnabled: false
ManagementNicMacAddress: null
ManagementSwitchId: null
Name: "PXE"
NumLockEnabled: false
OS: null
OperatingSystemTemplate: null
OperatingSystemTemplatePath: null
ParentSnapshotId: null
PauseResumeAllowed: false
PrivateNetworkEnabled: false
PrivateNicMacAddress: null
PrivateSwitchId: null
ProcessorCount: 0
Properties: null
ProvisioningStatus: 0
RamSize: 2048
RamUsage: 0
RebootAllowed: false
ReinstallAllowed: false
RemoteDesktopEnabled: false
ReplicationState: 0
ResetAllowed: false
RootFolderPath: null
SnapshotsNumber: 0
StartTurnOffAllowed: false
State: 3
Status: null
TypeId: 0
Uptime: 0
VirtualHardDrivePath: "C:\\VM\\PXE\\PXE\\Virtual Hard Disks\\PXE.vhdx"
VirtualMachineId: "78656409-A993-4345-BD8D-7E43B3C2F092"


list

Данный метод возвращает список виртуальных машин с их характеристиками. Поддерживается параметр server

http://127.0.0.1:8088/?key=sdfoj3429mgfi823jhrniefj8123423ieufmwiefm239854r234&action=list

Данный запрос вернет список виртуальных машин с сервера localhost
Ответ:

Adapters: [{Name: "Тест", MacAddress: "00155DB45402", SwitchName: null}]
AdministratorPassword: null
BootFromCD: true
CpuCores: 2
CpuUsage: 0
CreatedDate: "0001-01-01T00:00:00"
CurrentTaskId: null
Disks: [{FileSize: 33554432, MaxInternalSize: 161061273600, ParentPath: null, DiskType: 3,…}]
Domain: null
DvdDriveInstalled: false
DynamicMemory: null
ExternalNetworkEnabled: false
ExternalNicMacAddress: null
ExternalSwitchId: null
Generation: 2
HddLogicalDisks: null
HddSize: 0
Heartbeat: 0
Hostname: null
Id: 0
LegacyNetworkAdapter: false
ManagementNetworkEnabled: false
ManagementNicMacAddress: null
ManagementSwitchId: null
Name: "PXE"
NumLockEnabled: false
OS: null
OperatingSystemTemplate: null
OperatingSystemTemplatePath: null
ParentSnapshotId: null
PauseResumeAllowed: false
PrivateNetworkEnabled: false
PrivateNicMacAddress: null
PrivateSwitchId: null
ProcessorCount: 0
Properties: null
ProvisioningStatus: 0
RamSize: 2048
RamUsage: 0
RebootAllowed: false
ReinstallAllowed: false
RemoteDesktopEnabled: false
ReplicationState: 0
ResetAllowed: false
RootFolderPath: null
SnapshotsNumber: 0
StartTurnOffAllowed: false
State: 3
Status: null
TypeId: 0
Uptime: 0
VirtualHardDrivePath: "C:\\VM\\PXE\\PXE\\Virtual Hard Disks\\PXE.vhdx"
VirtualMachineId: "78656409-A993-4345-BD8D-7E43B3C2F092"


thumb

Данный метод возвращает скриншот экрана виртуальной машины. Требуется передать параметр id указывающий идентификатор виртуальной машины. Поддерживается параметр server

http://127.0.0.1:8088/?key=sdfoj3429mgfi823jhrniefj8123423ieufmwiefm239854r234&action=thumb&id=78656409-A993-4345-BD8D-7E43B3C2F092

ответ содержит закодированный в base64 снимок экрана


Ответ:

{"src":"iVBORw0KGgoAAAANSUhEUgAAAUAAAADwCAYAAABxLb1rAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAMJSURBVH
he7dQxAQAwEAOh+rcXQV8hx4AF3rYDKBIgkCVAIEuAQJYAgSwBAlkCBLIECGQJEMgSIJAlQCBLgECWAIEsAQJZAgSyBAhkCRDIEiCQJUAgS4BAlgCBLAECWQIEsgQIZAkQyBIgkCV
AIEuAQJYAgSwBAlkCBLIECGQJEMgSIJAlQCBLgECWAIEsAQJZAgSyBAhkCRDIEiCQJUAgS4BAlgCBLAECWQIEsgQIZAkQyBIgkCVAIEuAQJYAgSwBAlkCBLIECGQJEMgSIJAlQCBLgEC
WAIEsAQJZAgSyBAhkCRDIEiCQJUAgS4BAlgCBLAECWQIEsgQIZAkQyBIgkCVAIEuAQJYAgSwBAlkCBLIECGQJEMgSIJAlQCBLgECWAIEsAQJZAgSyBAhkCRDIEiCQJUAgS4BAlgCBLAE
CWQIEsgQIZAkQyBIgkCVAIEuAQJYAgSwBAlkCBLIECGQJEMgSIJAlQCBLgECWAIEsAQJZAgSyBAhkCRDIEiCQJUAgS4BAlgCBLAECWQIEsgQIZAkQyBIgkCVAIEuAQJYAgSwBAlkCBLI
ECGQJEMgSIJAlQCBLgECWAIEsAQJZAgSyBAhkCRDIEiCQJUAgS4BAlgCBLAECWQIEsgQIZAkQyBIgkCVAIEuAQJYAgSwBAlkCBLIECGQJEMgSIJAlQCBLgECWAIEsAQJZAgSyBAhkCR
DIEiCQJUAgS4BAlgCBLAECWQIEsgQIZAkQyBIgkCVAIEuAQJYAgSwBAlkCBLIECGQJEMgSIJAlQCBLgECWAIEsAQJZAgSyBAhkCRDIEiCQJUAgS4BAlgCBLAECWQIEsgQIZAkQyBIgk
CVAIEuAQJYAgSwBAlkCBLIECGQJEMgSIJAlQCBLgECWAIEsAQJZAgSyBAhkCRDIEiCQJUAgS4BAlgCBLAECWQIEsgQIZAkQyBIgkCVAIEuAQJYAgSwBAlkCBLIECGQJEMgSIJAlQCBLgE
CWAIEsAQJZAgSyBAhkCRDIEiCQJUAgS4BAlgCBLAECWQIEsgQIRO0+xFHc8exoJDkAAAAASUVORK5CYII="}

shutdown

Данный метод инициирует завершение работы операционной системы(корректное выключение). Требуется передать параметр id указывающий идентификатор виртуальной машины. Поддерживается параметр server

http://127.0.0.1:8088/?key=sdfoj3429mgfi823jhrniefj8123423ieufmwiefm239854r234&action=shutdown&id=78656409-A993-4345-BD8D-7E43B3C2F092

ответ может содержать ошибку остановки или успешный код завершения


Ответ:

{"Id":"33B2DA07-49DF-495D-AC75-5A30AC51D8F4","JobState":10,"Cancellable":false,"Caption":"Завершение работы","Description":"Завершение работы виртуальной машины","ElapsedTime":"2022-04-07T10:53:47.020009+03:00","StartTime":"2022-04-07T10:53:46","ErrorCode":32768,"ErrorDescription":"Сбой остановки \"PXE\": Устройство не готово. (0x800710DF). (ИД виртуальной машины 78656409-A993-4345-BD8D-7E43B3C2F092)","PercentComplete":0,"TargetState":0}

off

Данный метод инициирует принудительное выключение виртуальной машины. Требуется передать параметр id указывающий идентификатор виртуальной машины. Поддерживается параметр server

http://127.0.0.1:8088/?key=sdfoj3429mgfi823jhrniefj8123423ieufmwiefm239854r234&action=off&id=78656409-A993-4345-BD8D-7E43B3C2F092

ответ может содержать ошибку остановки или успешный код завершения


Ответ:

{"Id":"D7CBA876-5D8A-47B1-87EB-98D2FC3D67C9","JobState":4,"Cancellable":false,"Caption":"Выключение","Description":"Выключение виртуальной машины","ElapsedTime":"2022-04-07T10:54:58.3152202+03:00","StartTime":"2022-04-07T10:54:58","ErrorCode":0,"ErrorDescription":"","PercentComplete":0,"TargetState":0}

start

Данный метод инициирует включение виртуальной машины. Требуется передать параметр id указывающий идентификатор виртуальной машины. Поддерживается параметр server

http://127.0.0.1:8088/?key=sdfoj3429mgfi823jhrniefj8123423ieufmwiefm239854r234&action=start&id=78656409-A993-4345-BD8D-7E43B3C2F092

ответ может содержать ошибку остановки или успешный код выполнения


Ответ:

{"Id":"D152A0B1-0B41-46DD-9D1E-ECE518957BE2","JobState":4,"Cancellable":false,"Caption":"Запуск","Description":"Инициализация и запуск виртуальной машины","ElapsedTime":"2022-04-07T10:55:48.715126+03:00","StartTime":"2022-04-07T10:55:48","ErrorCode":0,"ErrorDescription":"","PercentComplete":0,"TargetState":0}

reset

Данный метод инициирует сброс виртуальной машины. Требуется передать параметр id указывающий идентификатор виртуальной машины. Поддерживается параметр server

http://127.0.0.1:8088/?key=sdfoj3429mgfi823jhrniefj8123423ieufmwiefm239854r234&action=reset&id=78656409-A993-4345-BD8D-7E43B3C2F092

ответ может содержать ошибку остановки или успешный код выполнения


Ответ:

{"Id":"41C6328D-C046-450D-92AF-809BFBDA38FE","JobState":4,"Cancellable":false,"Caption":"Сброс","Description":"Сброс виртуальной машины","ElapsedTime":"2022-04-07T10:56:36.3081291+03:00","StartTime":"2022-04-07T10:56:36","ErrorCode":0,"ErrorDescription":"","PercentComplete":0,"TargetState":0}