Set-HostNetwork
VMware: Updates the specified virtual network
#Requires -Version 5.1
#Requires -Modules VMware.VimAutomation.Core
[CmdletBinding()]
Param(
[Parameter(Mandatory = $true)]
[string]$VIServer,
[Parameter(Mandatory = $true)]
[pscredential]$VICredential,
[Parameter(Mandatory = $true)]
[string]$HostName,
[string]$ConsoleGateway,
[string]$ConsoleGatewayDevice,
[string]$ConsoleV6Gateway,
[string]$ConsoleV6GatewayDevice,
[string]$DnsAddress,
[string]$DomainName,
[bool]$IPv6Enabled,
[string]$SearchDomain,
[string]$VMKernelGateway,
[string]$VMKernelGatewayDevice,
[string]$VMKernelV6Gateway,
[string]$VMKernelV6GatewayDevice
)
Process {
$vmServer = $null
try {
$vmServer = Connect-VIServer -Server $VIServer -Credential $VICredential -ErrorAction Stop
$timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
$vmHost = Get-VMHost -Server $vmServer -Name $HostName -ErrorAction Stop
$netInfo = Get-VMHostNetwork -Server $vmServer -VMHost $vmHost -ErrorAction Stop
$output = $netInfo | Select-Object *
$cmdArgs = @{ ErrorAction = 'Stop'; Network = $netInfo; Confirm = $false }
if ($PSBoundParameters.ContainsKey('ConsoleGateway')) { $output = Set-VMHostNetwork @cmdArgs -ConsoleGateway $ConsoleGateway | Select-Object * }
if ($PSBoundParameters.ContainsKey('ConsoleGatewayDevice')) { $output = Set-VMHostNetwork @cmdArgs -ConsoleGatewayDevice $ConsoleGatewayDevice | Select-Object * }
if ($PSBoundParameters.ContainsKey('ConsoleV6Gateway')) { $output = Set-VMHostNetwork @cmdArgs -ConsoleV6Gateway $ConsoleV6Gateway | Select-Object * }
if ($PSBoundParameters.ContainsKey('ConsoleV6GatewayDevice')) { $output = Set-VMHostNetwork @cmdArgs -ConsoleV6GatewayDevice $ConsoleV6GatewayDevice | Select-Object * }
if ($PSBoundParameters.ContainsKey('DnsAddress')) { $output = Set-VMHostNetwork @cmdArgs -DnsAddress $DnsAddress | Select-Object * }
if ($PSBoundParameters.ContainsKey('IPv6Enabled')) { $output = Set-VMHostNetwork @cmdArgs -IPv6Enabled $IPv6Enabled | Select-Object * }
if ($PSBoundParameters.ContainsKey('VMKernelGateway')) { $output = Set-VMHostNetwork @cmdArgs -VMKernelGateway $VMKernelGateway | Select-Object * }
if ($PSBoundParameters.ContainsKey('VMKernelGatewayDevice')) { $output = Set-VMHostNetwork @cmdArgs -VMKernelGatewayDevice $VMKernelGatewayDevice | Select-Object * }
if ($PSBoundParameters.ContainsKey('VMKernelV6Gateway')) { $output = Set-VMHostNetwork @cmdArgs -VMKernelV6Gateway $VMKernelV6Gateway | Select-Object * }
if ($PSBoundParameters.ContainsKey('VMKernelV6GatewayDevice')) { $output = Set-VMHostNetwork @cmdArgs -VMKernelV6GatewayDevice $VMKernelV6GatewayDevice | Select-Object * }
if ($PSBoundParameters.ContainsKey('DomainName')) { $output = Set-VMHostNetwork @cmdArgs -DomainName $DomainName | Select-Object * }
foreach ($item in $output) {
$item | Add-Member -NotePropertyName 'Timestamp' -NotePropertyValue $timestamp -Force
Write-Output $item
}
}
catch { throw }
finally { if ($null -ne $vmServer) { Disconnect-VIServer -Server $vmServer -Force -Confirm:$false -ErrorAction SilentlyContinue } }
}IP address or DNS name of the vSphere server
PSCredential object for authenticating with the server
Host whose networking configuration to modify
New console gateway address
New console gateway device
Console V6 gateway address
Console V6 gateway device
New DNS address
New domain name
Enable IPv6 configuration
New search domain
New kernel gateway
New kernel gateway device
VMKernel V6 gateway address
VMKernel V6 gateway device