Вы можете легко использовать powershell:
PS C:\Users\mmoor> $RouteTable = Get-WmiObject Win32_IP4RouteTable
PS C:\Users\mmoor> $RouteTable[0].Mask
0.0.0.0
PS C:\Users\mmoor> $RouteTable[0].Destination
0.0.0.0
PS C:\Users\mmoor> $RouteTable[0].NextHop
<Gateway Address>
Сравните это с запуском ROUTE PRINT из командной строки Windows. Powershell - это многословный язык сценариев, поэтому вы можете легко обновить конфигурационный скрипт клиента openvpn, я полагаю, это то, что вы пытаетесь сделать. Это также объектно-ориентированный.
Я бы сделал что-то следующее:
1) Захватите таблицу маршрутизации из wmi (показано выше)
2) Каждая запись таблицы маршрутизации - это одна запись в массиве (отсюда [0] после указанной выше переменной)
3) Выполните foreach для массива, пока не найдете IP-адрес, который вы ищете
4) Получить член NextHop из записи RouteTable и сохранить его
5) Прочтите файл конфигурации клиента OpenVPN (использование get-content в powershell создаст массив строк файла)
6) Перебирайте массив строк, пока не найдете строку, которую вы должны заменить, затем замените строку и сохраните файл.
Надеюсь, что это указывает вам в правильном направлении.