Skip to content

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

An interactive directory of PowerShell scripts.