Я весь день гуглял и не могу взломать этот орех. У меня есть csv от RVTools с указанием имени виртуальной машины и указанной VLAN ( Имена столбцов VM & Network ), моя цель состоит в том, чтобы PowerCLI изменил VLAN в vCenter в соответствии с VLAN в CSV.
Сначала я сделал трудный путь для нашей тестовой среды, поместив оба столбца в отдельный массив
$HadesList = "C:\Users\-user-\Desktop\test.csv"
$TestList = Import-CSV $HadesList
$result = ForEach($Line in $TestList) { $Line.VM }
$result2 = ForEach($Line2 in $TestList) { $Line2.Network }
get-vm $result[0] | Get-NetworkAdapter | Set-NetworkAdapter -NetworkName $result2[0] -Confirm:$false
...manually changing the numbers...
get-vm $result[24] | Get-NetworkAdapter | Set-NetworkAdapter -NetworkName $result2[24] -Confirm:$false
, который отлично работал в тестовой лаборатории, поскольку в ней было всего 25 ВМ. Но когда мы go сделали это изменение в производстве, я хотел что-то более краткое. Я искал вокруг и нашел, что кто-то делает петли, которые будут возвращать данные, поэтому я попытался использовать его для замены сетевого адаптера, но он выдал ошибку:
$VMData = Import-CSV C:\Users\-user-\Desktop\test.csv
for ($i=0; $i -lt $VMData.count; $i++){
Get-VM $VMData.VM[$i] | Get-NetworkAdapter | Set-NetworkAdapter -NetworkName $VMData.Network[$i] -Confirm:$false
}
Set-NetworkAdapter: 2/24 / 2020 14:15:41 Set-NetworkAdapter Не удается найти браузер среды для VMHost с идентификатором: 'HostSystem-host-14'.
В строке: 2 символа: 46 + ... rkAdapter | Set-NetworkAdapter -NetworkName $ VMData.Network [$ i] -Conf ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: ResourceUnavailable: (HostSystem-host-14: String) [Set-NetworkAdapter], ViError + FullyQualifiedErrorId: Client20_VmHostServiceImpl_TryGetHostEnvironmentBrowser_EnvironmentBrowserNotFound, VMware.VimAutomation.ViCore.Cmdlets.Commands.VirtualDevice.SetNetworkAdapter
Есть ли что-нибудь, что может сработать? Я весь день бился с этим, и даже не могу придумать, как это сформулировать, чтобы получить лучшие результаты поиска.