Powershell'i kolayca kullanabilirsiniz :
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>
Bu w / running ROUTE PRINT'i bir windows komut satırından karşılaştırın. Powershell ayrıntılı bir betik dilidir, bu yüzden openvpn client config betiğini kolayca güncelleyebilirsiniz, bunun yapmaya çalıştığınızın bu olduğunu farz ediyorum. Aynı zamanda nesne odaklı da.
Aşağıdaki gibi bir şey yapardım:
1) Yönlendirme tablasını wmi'den tut (yukarıda gösterilmiştir)
2) Her Yönlendirme tablosu girişi bir dizideki bir giriştir (yukarıdaki değişkenden sonra [0])
3) Aradığınız IP Adresini bulana kadar dizide foreach yapın.
4) NextHop üyesini RouteTable girişinden alın ve saklayın
5) OpenVPN client config dosyasını okuyun (powershell'de get-içerik kullanarak dosyanın bir dizge dizisini yaratacaktır)
6) Değiştirmeniz gereken dizeyi bulana kadar dizge dizisini yineleyin, ardından dizeyi değiştirin ve dosyayı kaydedin.
Umarım bu size doğru yöne işaret eder.
routes | grep -P "192\.168\.1\.0\s+255\.255\.255\.0\s+(\d+\.\d+\.\d+\.\d+)" | awk "{print $3}"
(Söz konusu VPN bağlantısı 192.168.1.0/24 adres alanına giden bir yolu iter.) Belki birisinin soruma daha şık bir çözümü olabilir. :)