Переименуйте виртуальные машины Hyper-V, чтобы включить их S / N - PullRequest
0 голосов
/ 26 апреля 2020

Я пытаюсь переименовать некоторые виртуальные машины Hyper-V, чтобы включить первые 4 цифры их серийного номера B IOS. Я делаю это, вытягивая имена виртуальных машин и связанные с ними S / N, а затем пытаюсь переименовать виртуальные машины, используя эту информацию, называя каждую виртуальную машину, используя соответствующий S / N в извлеченной таблице.

Она вытягивает необходимые info отлично, то есть имя виртуальной машины (имя элемента) и S / N (BIOSSerialNumber), однако процесс переименования не работает.

В настоящее время он работает, переименовывая каждую виртуальную машину, чтобы включить в нее один и тот же серийный номер (первый в списке), вместо того, чтобы использовать серийный номер, связанный с правильной виртуальной машиной.

Буду признателен за любую помощь в решении этой проблемы.

У меня есть этот код до сих пор: https://pastebin.com/XyDcAqvx

$VMPrefix = "xtest"
$VMs = Get-WmiObject -Namespace root\virtualization\v2 -class Msvm_VirtualSystemSettingData | `
Where-Object {$_.elementname -like "*$VMPrefix*"} | `
select elementname, BIOSSerialNumber

foreach ($VM in $VMs) {
Rename-VM $VM.elementname -NewName ($VMPrefix + $VM.BiosSerialNumber.substring(0,4))
}

Выбор имени элемента и S / N приводит к:

elementname BIOSSerialNumber                
----------- ----------------                
xtest7749 7749-2038-3241-8243-8506-8264-01
xtest7749 7296-0806-3378-0069-7005-3271-32
xtest7749 1690-8323-7476-5112-2317-7980-11

В конечном итоге он должен выглядеть следующим образом:

elementname BIOSSerialNumber                
----------- ----------------                
xtest7749 7749-2038-3241-8243-8506-8264-01
xtest7296 7296-0806-3378-0069-7005-3271-32
xtest1690 1690-8323-7476-5112-2317-7980-11
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...