Как получить имя гостя VirtualBox от гостя

532
TinyTheBrontosaurus

В VirtualBox есть ли способ получить собственное имя гостевой виртуальной машины из этого гостя? Самое близкое, что я нашел, было, VBoxControl guestproperty enumerateно это не включало ни одно из вышеупомянутых значений. Я использую VirtualBox 5.1.20, Windows Server 2012 на гостевой, и гостевые дополнения установлены.

Обратите внимание, что я могу получить эту информацию от хоста, позвонив VBoxManage list vms.

Также было бы достаточно, если бы я мог установить «некоторое строковое свойство» от хоста через VBoxManageкоторое может быть прочитано гостем черезVBoxControl

1
Смежный вопрос: знает ли ВМ, что она управляется VirtualBox? Biswapriyo 6 лет назад 0
VirtualBox Guest Additions установлены, поэтому я бы сказал, да TinyTheBrontosaurus 6 лет назад 0
но даже лучше, если бы я мог обойтись без гостевых дополнений! TinyTheBrontosaurus 6 лет назад 0
Не знаю, возможно ли это, но я думаю, что вам может понадобиться, чтобы иметь возможность определить, на какой виртуальной машине у вас есть несколько открытых. Моим решением было сделать разные цветовые темы на разных виртуальных машинах. Надеюсь, что это поможет вам, если нет, то, возможно, поможет другим konqui 6 лет назад 0
Ха! Я уже делал обои, когда манипулировал виртуальными машинами. Это очень нужно. Но для этой проблемы я ищу программное решение, у меня могут быть журналы, которые указывают виртуальную машину. TinyTheBrontosaurus 6 лет назад 0
Вам может повезти с эквивалентом `dmidecode` для` windows`: https://serverfault.com/questions/171524/virtualbox-get-guest-uuid-from-within-the-guest-computer Arkadiusz Drabczyk 6 лет назад 0
Я пробовал `wmic`, который я прочитал, должен был быть эквивалентом, но в нем не было никакой информации TinyTheBrontosaurus 6 лет назад 0
то же самое с `systeminfo` TinyTheBrontosaurus 6 лет назад 0
Я проверил DMI и ничего. Это должно было быть в OEM-определенной информации о шасси, но это не так. Теоретически VBoxService знает о состоянии виртуальной машины, но он не обязательно содержит метаданные имени. Я думаю, что это должно. jdwolf 6 лет назад 0

1 ответ на вопрос

2
TinyTheBrontosaurus

Мне повезло, установив guestpropertyв VBoxManageи VBoxControl.

На хосте:

VBoxManage guestproperty set SampleVm GuestName SampleVm 

Тогда на гостя:

VBoxControl --nologo guestproperty get GuestName 

Недостатком является то, что для этого требуются гостевые дополнения VirtualBox (для VBoxControl) и дополнительный вызов от хоста.

Это достаточно для моей проблемы, поэтому я опубликовал ее. Но я не собираюсь принимать ответ, так как я представляю (надеюсь), что есть лучший ответ там TinyTheBrontosaurus 6 лет назад 0
Что возвращает `wmic csprodct uuid` для` guest`? Arkadiusz Drabczyk 6 лет назад 0
Ницца. Это действительно возвращает UUID. Но я нигде не вижу имени. Это позволило бы мне составить таблицу поиска по имени UUID и поделиться ею со всеми гостями. TinyTheBrontosaurus 6 лет назад 0
К сожалению, в этом есть опечатка: `wmic csproduct get uuid` TinyTheBrontosaurus 6 лет назад 0
Это может быть UUID виртуальной машины, найдите его в `VBoxManage list vms` на хосте. Arkadiusz Drabczyk 6 лет назад 0
Да. Это определенно UUID виртуальной машины TinyTheBrontosaurus 6 лет назад 0
Это в списке? Arkadiusz Drabczyk 6 лет назад 0
`VBoxManage list vms` - это таблица поиска UUID-to-name, на которую я ссылался несколько комментариев назад. Мне нужен способ отправить это гостевым виртуальным машинам, чтобы получить имя для гостя. Конечно выполнимо TinyTheBrontosaurus 6 лет назад 0
Да, UUID, возвращаемый из `wmic`, совпадает с UUID в` VBoxManage list vms`. Вот как я узнал, `wmic` вернул правильный UUID гостя TinyTheBrontosaurus 6 лет назад 0
Это окончательный ответ на ваш вопрос? На вашем месте я бы положился исключительно на это. Имя можно изменить - например, когда-нибудь вы можете переименовать ваш компьютер с Windows на Windows_old, и вам придется обновить таблицу в гостевой системе. Arkadiusz Drabczyk 6 лет назад 0
какой окончательный ответ? ответ эти комментарии размещены против? Или ответ, который мы прошли в комментариях? Ответ в комментариях, безусловно, * * ответ, но IMO это сложно, потому что он включает передачу таблицы поиска `VBoxManage list vms` с хоста на гостя TinyTheBrontosaurus 6 лет назад 0
также, если имена меняются, я хочу, чтобы у гостевой виртуальной машины было это новое имя. не старое имя TinyTheBrontosaurus 6 лет назад 0
Нет необходимости трансформировать список виртуальных имен гостю, как я только что сказал, я бы на самом деле этого не делал. У вас всегда будет действительный UUID, этого достаточно. Arkadiusz Drabczyk 6 лет назад 0
достаточно для чего? Я ценю вашу помощь, но вопрос в том, чтобы получить имя, а не UUID. TinyTheBrontosaurus 6 лет назад 0
Ответ в том, что в «виртуальной машине» невозможно без ручной работы. Arkadiusz Drabczyk 6 лет назад 0

Похожие вопросы