VPN auto reconnect

Hurkeey

Cadet 2nd Year
Registriert
Feb. 2021
Beiträge
19
Hallo ich versuche gerade einzustellen das meine VPN Verbindung beim Start des Rechners automatisch aufgebaut wird und die Verbindung sollte auch wenn getrennt wieder automatisch verbunden werden. Ich habe dazu schon eine Batch Datei und ein powershell script gefunden jedoch funktioniert das nicht so recht bitte um Hilfe.

Batch datei:
powershell.exe -executionpolicy bypass -windowstyle hidden -noninteractive -nologo -file "C:\autovpn.ps1"

powershell script:
while ($true) { $vpnname = "YOURVPNCONNECTIONNAME" $vpnusername = "YOURUSERNAME" $vpnpassword = "YOURPASSWORD" $vpn = Get-VpnConnection | where {$_.Name -eq $vpnname} if ($vpn.ConnectionStatus -eq "Disconnected") { $cmd = $env:WINDIR + "\System32\rasdial.exe" $expression = "$cmd ""$vpnname"" $vpnusername $vpnpassword" Invoke-Expression -Command $expression } start-sleep -seconds 30 }

beim starten des Rechners öffnet sich das cmd und es wird die Batch Datei ausgeführt jedoch wird die Verbindung mit dem PowerShell Script nicht hergestellt.
 
Was gibt denn die PS aus, wenn du das manuell ausführst?
 
Funktioniert das Script denn, wenn du es händisch ausführst?

Und ich hab es mal in Code-Tags gesetzt und richtig formatiert, damit man es deutlich besser lesen kann:
PowerShell:
while ($true) {
    $vpnname = "YOURVPNCONNECTIONNAME"
    $vpnusername = "YOURUSERNAME"
    $vpnpassword = "YOURPASSWORD"
    $vpn = Get-VpnConnection | where {$_.Name -eq $vpnname}
    if ($vpn.ConnectionStatus -eq "Disconnected") {
        $cmd = $env:WINDIR + "\System32\rasdial.exe"
        $expression = "$cmd ""$vpnname"" $vpnusername $vpnpassword"
        Invoke-Expression -Command $expression
    }
    start-sleep -seconds 30
}
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Der Lord und kamanu
PS gibt nichts aus beim manuellen ausführen
 
Einfach mal den Inhalt der vpn-Variable vorher printen. Damit du mal siehst was wirklich gerade drin steht. Einfach überprüfen, was deine Variablen gerade beinhalten damit du nachvollziehen kannst was dein Script gerade tut.
Das ist übrigens nicht was für Powershell spezifisch ist. Kannste in jeder Programmiersprache so anwenden.
Macht halt nicht immer Sinn nen dicken Debugger anzuwerfen.
 
Zurück
Oben