Monthly Archive

Categories

IP Default Gateways

When you configure the IP Address on a network adapter you also have to set the default gateway if you want the machine to communicate with machines on other subnets.

 

One way you can do this is through the SetGateways method of Win32_NetworkAdapterConfiguration

$class = Get-CimClass -ClassName Win32_NetworkAdapterConfiguration

$class.CimClassMethods['SetGateWays'].Parameters

Name                  CimType Qualifiers                         ReferenceClassName
----                  ------- ----------                         ------------------
DefaultIPGateway  StringArray {ID, In, MappingStrings}
GatewayCostMetric UInt16Array {ID, In, MappingStrings, Optional}

 

Notice you need to supply the information as arrays so:

$dgw = @('10.10.54.1')
$gcm = @([uint16]2)

 

The default for the metric is 1. The metric is supplied as an unsigned 16 bit integer

Get-CimInstance -ClassName Win32_NetworkAdapterConfiguration -Filter "Index=2"  | Invoke-CimMethod –MethodName  SetGateWays -Arguments @{DefaultIPGateway = $dgw; GatewayCostMetric = $gcm}

 

To change the gateway simply overwrite the values via another call to SetGateways()

 

To completely remove the gateway information you need to set the value of the gateway to be the same as the IP address on the adapter

$dgw = @('10.10.54.200')
$gcm = @([uint16]1)

Get-CimInstance -ClassName Win32_NetworkAdapterConfiguration -Filter "Index=2"  | Invoke-CimMethod –MethodName  SetGateWays -Arguments @{DefaultIPGateway = $dgw; GatewayCostMetric = $gcm}

 

Leaving the metric as 1 will cause no harm

 

Next time I’ll show how to perform the same actions with the networking cmdlets

Comments are closed.