Короткий вопрос: может ли VM использовать powershell, чтобы получить свое имя?Использование Powershell для получения собственного имени vm
У меня есть среда, где у меня есть 12 одинаковых наборов виртуальных машин. Каждый набор имеет один сервер перехода, а соглашение об именах: ## _ APP_SET #, где ## - соответствующее устройство NAT, а SET # сообщает мне набор виртуальных машин.
На этой виртуальной машине APP я создал меню, которое использует учетную запись на внешнем vCenter для включения и выключения виртуальных машин в наборе. Таким образом, изнутри виртуальной машины он подключается к родительскому vCenter и запускает действие на другой виртуальной машине в наборе. Проблема в том, что у меня есть имена виртуальных машин, жестко закодированные в скрипте. Например, если я на 01_APP_SET1, у меня есть куча записей для 01_MACHINENAME_SET1, и на 02_APP_SET2, у меня есть записи для 02_MACHINENAME_SET2 и т.д.
Я в настоящее время управляет 12 различных сценариев на 12 различных APP виртуальных машин. Я надеюсь, что сценарий будет более общим, где VM называет get-vm на себе и анализирует предыдущий ## и завершающий SET #, но не имеет большой удачи, не получая список систем, называемых APP, с get-vm APP.
Я думаю, что лучший способ справиться с этим - предоставить каждой APP VM имя хоста, соответствующее его имени, в vCenter, а затем разобрать информацию таким образом.
Это на самом деле одна из проблем. Все они имеют одинаковый IP-адрес. Каждый набор находится в собственной изолированной сети. Помимо имен виртуальных машин, изображения идентичны. Они также должны иметь одинаковое имя хоста, но я думаю, что могу дать им все имена хостов, соответствующие имени виртуальной машины, а затем создать запись файла хоста в виде псевдонима. – afterbyrner
Если вы можете переименовать машины в соответствии с их именем виртуальной машины, вы можете использовать $ compname = $ env: имя_компьютера, а затем Get-VM $ compname. – Hive