Наша сеть перемещается с 192.xyz на 10.u.v.w, и я не хочу вручную переадресовывать 250 компьютеров. Моя идея состоит в том, чтобы использовать сценарий powershell (тест для одного компьютера):
$oldIp='192.168.100.1'
$ новый IP = '10.11.12.13'
$newGw='10.11.12.254'
$newLen='24'
$adminCred = Get-Credential -UserName ourdomain\myAdminAccount -Message 'Введите пароль'
ForEach ($Adapter in (Get-WmiObject Win32_NetworkAdapter -Filter "NetEnabled='True'" -ComputerName $oldIp)){
$wmiQuery = Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter "Index = '$($Adapter.Index)'" -ComputerName $oldIp
если ($wmiQuery.IP-адрес - содержит $oldIp){
$pcName=[system.net.dns]::gethostentry($lavIp) | Select-Object -ExpandProperty HostName
$cimSess=New-CimSession -SkipTestConnection -Credential $adminCred -ComputerName $pcName
New-NetIPAddress -CimSession $cimSess -InterfaceIndex $Adapter.Index -IPAddress $newIp -PrefixLength $newLen -DefaultGateway $newGw
}еще{
## не трогайте этот ник
}
}
Если все сетевые карты получили новый IP-адрес, удалите старый IP-адрес с помощью Remove-NetIPAddress
.
В настоящее время $cimSess
не работает, как ожидалось, но мой главный вопрос: я на правильном пути, или есть лучший/быстрее/проще/... способ сделать это? Или я совсем не прав и что-то упустил?