this is the script
$esxName = 'ESXServer'
$tgtPg = 'Management Network'
$vmkName = 'vmk0'
$newVLAN = 111
$newDG = '1.1.1.1'
$newip = '1.1.1.5'
$esx = Get-VMHost -Name $esxName
$netMgr = Get-View -Id $esx.ExtensionData.ConfigManager.NetworkSystem
$config = New-Object VMware.Vim.HostNetworkConfig
$pg = $netMgr.NetworkConfig.Portgroup | where{$_.Spec.Name -eq $tgtPG}
$pg.ChangeOperation = [VMware.Vim.HostConfigChangeOperation]::edit
$pg.Spec.VlanId = $newVLAN
$config.Portgroup += $pg
$vmk = $netmgr.NetworkConfig.Vnic | where{$_.Device -eq $vmkName}
$vmk.ChangeOperation = [VMware.Vim.HostConfigChangeOperation]::edit
$vmk.Spec.IpRouteSpec = New-Object VMware.Vim.HostVirtualNicIpRouteSpec
$vmk.spec.IpRouteSpec.IpRouteConfig = New-Object VMware.Vim.HostIpRouteConfig
$vmk.Spec.IpRouteSpec.IpRouteConfig.DefaultGateway = $newDG
$vmk.spec.ip = New-Object VMware.Vim.HostIpConfig
$Vmk.spec.ip.ipaddress = $newip
$config.Vnic += $vmk
$netMgr.UpdateNetworkConfig($config,[VMware.Vim.HostConfigChangeMode]::modify)
but i get this Error
Exception calling "UpdateNetworkConfig" with "2" argument(s): "A specified parameter was not correct: "
At C:\Scripts\VMware\change_esx_ip\changevlan.ps1:38 char:1
+ $netMgr.UpdateNetworkConfig($config,[VMware.Vim.HostConfigChangeMode] ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : VimException