Atjunkite vieną OpenVPN GUI profilį, o ne visus tunelius
GUI valdomas tunelis reikalauja GUI komandos, o paslaugos valdomas tunelis — paslaugos valdymo. Prieš ką nors skriptuodami nustatykite, kuri programa valdo profilį.
Atjungimo skriptas paprastai nepavyksta dėl vienos priežasties: jis kreipiasi į netinkamą savininką. Bendruomenės OpenVPN GUI valdomas tunelis priklauso to GUI sesijai, Windows paslaugos paleistas tunelis priklauso paslaugai, o OpenVPN Connect nepriklauso nė vienam iš jų. Atlikite šiuos patikrinimus iš eilės ir sustokite, kai savininkas neaiškus. Siųsti kill komandą todėl, kad savininkas buvo dviprasmiškas, yra būtent tas kelias, kuriuo vieno profilio atjungimas virsta visos vietos sutrikimu.
GUI valdomam ryšiui naudinga komanda yra žinutė GUI, o ne signalas openvpn.exe.
Pirmiausia nustatykite savininką
Prieš ką nors rašydami pažiūrėkite, kuri programa iš tikrųjų rodo prisijungimo būseną. Dėklų srities piktograma reiškia, kad ją valdo GUI sesija. Paslaugos įrašas reiškia, kad ją valdo paslauga. Atskiras programos langas su savo profilių sąrašu nereiškia nė vieno iš jų, ir jam taikoma jo paties versijai būdinga sąsaja.
Patikrinkite ir paskyrą bei darbalaukio sesiją. Suplanuotos užduoties, kuri vykdoma kitu naudotoju arba neinteraktyvioje sesijoje, nereikėtų laikyti valdančia GUI, kurį mato prisijungęs žmogus. Šis neatitikimas sukuria komandą, kuri baigiasi švariai ir nieko nekeičia, o tai yra brangiausias gedimo tipas, kurį reikia išsiaiškinti iš žurnalo.
Tada siųskite paties savininko atjungimą
Jei GUI įdiegta pavyzdžio kelyje ir yra profilis pavadinimu office, visa komanda yra viena eilutė:
"C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --command disconnect officePakeiskite savo tikruoju diegimo keliu ir tiksliu konfigūracijos pavadinimu, įskaitant didžiąsias ir mažąsias raides taip, kaip rodo GUI. Projekto komandų dokumentacija išvardija palaikomus GUI valdiklius, ir šis pavyzdys priklauso tik OpenVPN GUI — tai ne komanda kiekvienai programai, kurios pavadinime yra OpenVPN.
Paslaugos valdomam tuneliui teisingas valdiklis yra paslauga, o ne GUI vykdomasis failas. Prieš ką nors sustabdydami patikrinkite įdiegtą paslaugą ir jos valdomus profilius, nes sustabdymas gali vienu metu numesti kelis tunelius, o rezultato pagal profilį negausite.
Įsitikinkite, kad niekas kitas nenukenčia
GUI taip pat dokumentuoja komandą disconnect_all, ir būtent jos apimtis yra priežastis, kodėl ji netinka skriptui, kuris turi sustabdyti tik office. Jei dėl paprastumo kyla pagunda ją naudoti, paklauskite, kas dar tame kompiuteryje prijungta ir kaip naudotojas tai pastebės.
taskkill /F /IM openvpn.exe yra blogesnė dviem atžvilgiais. Ji parenka procesus pagal vykdomojo failo pavadinimą ir priverstinai užbaigia, todėl neišreiškia nei profilio pavadinimo, nei įprastos savininko atjungimo sekos. Pavadinti tai tvarkingu išjungimu reiškia paslėpti abi problemas už vienos išėjimo būsenos.
Kokį kelią pasirinktumėte, prieš pakeitimą patikrinkite poveikio mastą: išvardykite prijungtus profilius, pažymėkite, kurie turi išlikti, ir po to patikrinkite juos dar kartą.
Patvirtinkite būseną, o ne išėjimo kodą
Paprašę atjungimo, skaitykite nurodyto ryšio būseną per jo savininką, o ne pasikliaukite komandos grąžinama reikšme. Jei kitas žingsnis po išardymo reikalauja tinklo, laukite tos būsenos pakeitimo su aiškiu skirtuoju laiku, o ne manykite, kad valymas baigėsi, kai procesas grįžo. Su išardymu lenktyniaujantis skriptas kartkartėmis nepavyks, o kaltė bus suversta VPN.
Jei būsena niekada nesikeičia, savininkas greičiausiai ne tas, į kurį kreipėtės. Dar kartą patikrinkite sesiją ir paskyrą prieš pereidami prie stipresnės komandos.
Ką įrašyti į žurnalą
Įrašykite profilio pavadinimą, savininką, į kurį kreipėtės, paleidimo kontekstą ir gautą būseną. Nepalikite visos konfigūracijos ar prisijungimo duomenų užduoties žurnale ir neįrašykite komandų eilutės, jei joje yra kelias į failą su paslaptimis.
Klaidos pranešimo, kuriame nurodytas profilis ir kontekstas, pakanka, kad kitas žmogus atkurtų problemą. Žurnalas, kuriame užrašytas tik bendras išėjimo kodas, nusiunčia juos atgal į pradžią, ir būtent ten spėlionės prasideda iš naujo.