Ontkoppel een OpenVPN GUI-profiel, nie elke tonnel nie
’n Tonnel wat deur die GUI bestuur word, vra ’n GUI-opdrag; ’n diens vra diensbeheer. Bepaal watter program die profiel besit voordat jy iets skrip.
Om ’n ontkoppeling te skrip, misluk gewoonlik om een rede: die skrip spreek die verkeerde eienaar aan. ’n Tonnel wat deur die gemeenskap se OpenVPN-GUI bestuur word, behoort aan daardie GUI se sessie; ’n tonnel wat deur ’n Windows-diens begin is, behoort aan die diens; en OpenVPN Connect behoort aan geen van die twee nie. Werk hierdie kontroles in volgorde deur en stop wanneer die eienaar onduidelik is. Om ’n kill-opdrag te stuur omdat die eienaar dubbelsinnig was, is hoe een profiel se ontkoppeling in ’n onderbreking vir die hele perseel ontaard.
Vir ’n GUI-bestuurde verbinding is die nuttige opdrag ’n boodskap aan die GUI, nie ’n sein aan openvpn.exe nie.
Identifiseer eers die eienaar
Kyk watter program werklik die gekoppelde toestand wys voordat jy enigiets skryf. ’n Sisteemlaaikoon beteken die GUI-sessie besit dit. ’n Diensinskrywing beteken die diens besit dit. ’n Aparte toepassingsvenster met sy eie profiellys beteken nie een van die twee nie, en sy eie weergawe-spesifieke koppelvlak geld.
Kontroleer ook die rekening en die lessenaarsessie. ’n Geskeduleerde taak wat as ’n ander gebruiker loop, of in ’n nie-interaktiewe sessie, moet nie as beheerder beskou word van die GUI wat ’n aangemelde persoon kan sien nie. Daardie wanverhouding lewer ’n opdrag wat skoon eindig en niks verander nie, en dit is die duurste soort fout om uit ’n joernaal te ontsyfer.
Stuur dan die eienaar se eie ontkoppeling
Met die GUI by die voorbeeldpad geïnstalleer en ’n profiel met die naam office, is die hele opdrag een reël:
"C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --command disconnect officeVervang dit met jou werklike installasiepad en die presiese konfigurasienaam, insluitend die hoofletters soos die GUI dit wys. Die projek se opdragdokumentasie lys die ondersteunde GUI-beheerders, en hierdie voorbeeld hoort uitsluitlik by OpenVPN GUI — dit is nie ’n opdrag vir elke toepassing met OpenVPN in sy naam nie.
Vir ’n tonnel wat deur ’n diens besit word, is die diens die korrekte beheer, nie die GUI-lêer nie. Ondersoek die geïnstalleerde diens en die profiele wat dit bestuur voordat jy enigiets stop, want ’n stop kan verskeie tonnels gelyk laat val en jy kry nie ’n uitslag per profiel terug nie.
Kontroleer dat niks anders val nie
Die GUI dokumenteer ook ’n disconnect_all-opdrag, en sy omvang is juis die rede waarom dit die verkeerde werktuig is vir ’n skrip wat net office moet stop. As jy in die versoeking kom om dit vir eenvoud te gebruik, vra wat anders op daardie masjien gekoppel is en hoe die gebruiker dit sal agterkom.
taskkill /F /IM openvpn.exe is op twee maniere slegter. Dit kies prosesse op uitvoerbare lêernaam en dit forseer beëindiging, dus druk dit nóg ’n profielnaam nóg die eienaar se normale ontkoppelingsreeks uit. Om dit ’n grasieuse afsluiting te noem, verberg albei probleme agter een enkele uittree-status.
Watter pad jy ook al volg, verifieer die impak voordat jy verander: lys die gekoppelde profiele, let op watter moet oorleef, en kontroleer hulle daarna weer.
Bevestig die toestand, nie die uittree-kode nie
Nadat jy die ontkoppeling aangevra het, lees die genoemde verbinding se toestand deur sy eienaar eerder as om die opdrag se terugkeerwaarde te vertrou. As die volgende stap die netwerk ná die afbreek nodig het, wag vir daardie toestandsverandering met ’n eksplisiete tydsperk eerder as om aan te neem die opruiming is klaar toe die proses teruggekeer het. ’n Skrip wat die afbreek voor is, sal met tussenposes misluk en die VPN kry die skuld.
As die toestand nooit verander nie, is die eienaar waarskynlik nie die een wat jy aangespreek het nie. Kontroleer die sessie en rekening weer voordat jy na ’n sterker opdrag oorgaan.
Wat om in die joernaal te sit
Teken die profielnaam, die eienaar wat jy aangespreek het en die bekendstellingskonteks aan, plus die gevolglike toestand. Moenie die volledige konfigurasie of geloofsbriewe in die taakjoernaal stort nie, en moenie die opdragreël aanteken as dit ’n pad na ’n lêer met geheime bevat nie.
’n Foutboodskap wat die profiel en die konteks noem, is genoeg vir die volgende persoon om die probleem te herproduseer. ’n Joernaal wat net ’n generiese uittree-kode aanteken, stuur hulle terug na die begin, en dit is waar die raaiery weer begin.