maybe you can use InterfaceIndex to link this objects:
get-wmiObject -Query "select InterfaceIndex from Win32_NetworkAdapter"
get-wmiObject -Query "select InterfaceIndex from Win32_NetworkAdapterConfiguration"
InterfaceIndex Data type: sint32 Access type: Read/write IP address of the next hop of this route. The value in this property is the same as the value in the InterfaceIndex property in the instances of Win32_NetworkAdapter and Win32_NetworkAdapterConfiguration that represent the network interface of the next hop of the route. In the case of a route bound to an interface that is realized using a broadcast medium, the value of this field is the agent IP address on that interface. description from: http://msdn.microsoft.com/en-us/library/windows/desktop/aa394162(v=vs.85).aspx
something like this
$index = get-wmiObject -Class Win32_NetworkAdapterConfiguration | Where-Object { ($_.DefaultIPGateway -eq "2.2.2.1") } | Select-object InterfaceIndex
get-wmiObject -Class Win32_NetworkAdapter | Where-Object { ($_.InterfaceIndex -eq $index.InterfaceIndex) } | Select NetConnectionId