Prekinite jedan OpenVPN GUI profil, a ne svaki tunel
Tunelom kojim upravlja GUI upravlja se GUI naredbom, a tunelom pod servisom upravlja se kontrolom servisa. Utvrdite koji program posjeduje profil prije nego što bilo što skriptirate.
Skripta za prekid obično ne uspijeva iz jednog razloga: obraća se pogrešnom vlasniku. Tunel kojim upravlja zajednički OpenVPN GUI pripada sesiji tog GUI-ja, tunel koji pokrene Windows servis pripada servisu, a OpenVPN Connect ne pripada ni jednom od njih. Prođite kroz ove provjere po redu i zaustavite se kada vlasnik nije jasan. Slanje kill naredbe zato što je vlasnik bio nejasan način je na koji prekid jednog profila postaje ispad cijelog lokaliteta.
Za vezu kojom upravlja GUI, korisna naredba je poruka GUI-ju, a ne signal openvpn.exe.
Prvo utvrdite vlasnika
Pogledajte koji program zapravo prikazuje povezano stanje prije nego što išta napišete. Ikona u sistemskoj traci znači da ga posjeduje GUI sesija. Stavka servisa znači da ga posjeduje servis. Zaseban prozor aplikacije s vlastitim popisom profila ne znači nijedno od toga, a na njega se primjenjuje njegovo vlastito sučelje specifično za verziju.
Provjerite i račun te sesiju radne površine. Zakazani zadatak koji radi kao drugi korisnik ili u neinteraktivnoj sesiji ne treba smatrati kontrolorom GUI-ja koji prijavljena osoba vidi. To neslaganje daje naredbu koja završi čisto i ništa ne promijeni, a to je najskuplja vrsta kvara za traženje uzroka iz dnevnika.
Zatim pošaljite vlastiti prekid vlasnika
Kada je GUI instaliran na putanji iz primjera i postoji profil po imenu office, cijela naredba je jedan redak:
"C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --command disconnect officeZamijenite svojom stvarnom putanjom instalacije i točnim nazivom konfiguracije, uključujući velika i mala slova kako ih GUI prikazuje. Dokumentacija naredbi projekta navodi podržane GUI kontrole, a ovaj primjer pripada samo OpenVPN GUI-ju — to nije naredba za svaku aplikaciju koja u imenu ima OpenVPN.
Za tunel koji posjeduje servis, ispravna kontrola je servis, a ne GUI izvršna datoteka. Pregledajte instalirani servis i profile kojima upravlja prije nego što bilo što zaustavite, jer zaustavljanje može srušiti nekoliko tunela odjednom i nećete dobiti rezultat po profilu.
Provjerite da ništa drugo ne pada
GUI dokumentira i naredbu disconnect_all, a njezin je opseg upravo razlog zašto je pogrešan alat za skriptu koja treba zaustaviti samo office. Ako vas mami da je upotrijebite radi jednostavnosti, pitajte što je još povezano na tom računalu i kako će korisnik to primijetiti.
taskkill /F /IM openvpn.exe gori je na dva načina. Bira procese po nazivu izvršne datoteke i nameće prisilno zaustavljanje, pa ne izražava ni naziv profila ni uobičajeni slijed prekida vlasnika. Nazvati to urednim gašenjem znači sakriti oba problema iza jednog izlaznog statusa.
Kojim god putem krenuli, provjerite opseg utjecaja prije promjene: izlistajte povezane profile, zabilježite koji trebaju preživjeti i provjerite ih ponovno poslije.
Potvrdite stanje, a ne izlazni kod
Nakon što zatražite prekid, čitajte stanje navedene veze preko njezina vlasnika umjesto da vjerujete povratnoj vrijednosti naredbe. Ako sljedeći korak traži mrežu nakon rastavljanja, čekajte tu promjenu stanja s eksplicitnim istekom vremena umjesto da pretpostavite da je čišćenje završilo kada se proces vratio. Skripta koja se utrkuje s rastavljanjem povremeno će zakazati, a krivnja će pasti na VPN.
Ako se stanje nikada ne promijeni, vlasnik vjerojatno nije onaj kojem ste se obratili. Ponovno provjerite sesiju i račun prije nego što prijeđete na jaču naredbu.
Što staviti u dnevnik
Zabilježite naziv profila, vlasnika kojem ste se obratili i kontekst pokretanja, plus rezultirajuće stanje. Ne sipajte punu konfiguraciju ni akreditive u dnevnik zadatka i ne bilježite naredbeni redak ako sadrži putanju do datoteke s tajnama.
Poruka o pogrešci koja imenuje profil i kontekst dovoljna je da sljedeća osoba reproducira problem. Dnevnik koji bilježi samo opći izlazni kod šalje ih natrag na početak, a upravo tu nagađanje počinje iznova.