Я пытаюсь использовать invoke-vmscript для изменения параметров IPV4 на всех наших серверах, используя их macaddress.
$vms = import-csv C:\temp\adapter_vm.csv -Delimiter ";"
foreach($vm in $vms){
$serveur = $vm.name
$mac = $vm.macaddress
$dns = "$interfaceindex = get-netadapter | where-object MacAddress -Like $($mac) | select-object InterfaceIndex; set-dnsclient -InterfaceIndex $interfaceindex.InterfaceIndex -UseSuffixWhenRegistering $true -RegisterThisConnectionsAddress $true -ConnectionSpecificSuffix test"
Invoke-VMScript -VM $serveur -ScriptType Powershell -ScriptText $dns -GuestUser secret -GuestPassword secret
}
Моя проблема в том, что $ interfaceindex не распознается удаленным компьютером.
set-dnsclient нужен интерфейсный индекс, поэтому я использую $ interfaceindex.
Не могли бы вы мне помочь?
Может быть, есть другой способ?
Спасибо!
----------------------------------------------------------------------------------------
=: Термин '=' не распознается как имя командлета, функции, файла сценария или работоспособной программы.Проверьте правильность написания имени или, если путь был указан, проверьте правильность пути и повторите попытку.В строке: 1 символ: 5 + & {= get-netadapter |где-объект MacAddress -Like 00-50-56-a1-33-61 |select- ... + ~ + CategoryInfo: ObjectNotFound: (=: String) [], CommandNotFoundEx ception + FullyQualifiedErrorId: CommandNotFoundException
Set-DnsClient: Невозможно обработать преобразование аргумента для параметра 'InterfaceIndex'.Не удалось преобразовать значение ".InterfaceIndex" в тип "System.UInt32 []".Ошибка: «Невозможно преобразовать значение« .InterfaceIndex »в тип« System.UInt32 ». Ошибка:« Введенная строка была неверного формата. »« В строке: 1 символ: 134 + ... InterfaceIndex .InterfaceIndex -UseSuffixWhenRegistering False -RegisterThisConn ... + ~~~~~~~~~~~~~~~ + CategoryInfo: InvalidData: (:) [Set-DnsClient], ParameterBindi ngArgumentTransformationException + FullyQualifiedErrorId: ParameterArgumentTransformationError, Set-DnsClie nt * 1017