Atvienošanas skripts parasti neizdodas viena iemesla dēļ: tas uzrunā nepareizo īpašnieku. Kopienas OpenVPN GUI pārvaldīts tunelis pieder šī GUI sesijai, Windows pakalpojuma palaists tunelis pieder pakalpojumam, un OpenVPN Connect nepieder nevienam no tiem. Izpildiet šīs pārbaudes pēc kārtas un apstājieties, kad īpašnieks nav skaidrs. Nosūtīt kill komandu tāpēc, ka īpašnieks bija neviennozīmīgs, ir tieši tas ceļš, kā viena profila atvienošana pārvēršas visas vietas pārtraukumā.

GUI pārvaldītam savienojumam noderīgā komanda ir ziņojums GUI, nevis signāls openvpn.exe.

Vispirms nosakiet īpašnieku

Pirms kaut ko rakstīt apskatiet, kura programma patiešām rāda savienoto stāvokli. Ikona sistēmas teknē nozīmē, ka to pārvalda GUI sesija. Pakalpojuma ieraksts nozīmē, ka to pārvalda pakalpojums. Atsevišķs lietotnes logs ar savu profilu sarakstu nenozīmē nevienu no tiem, un tam attiecas tā pati versijai raksturīgā saskarne.

Pārbaudiet arī kontu un darbvirsmas sesiju. Plānotu uzdevumu, kas darbojas kā cits lietotājs vai neinteraktīvā sesijā, nevajadzētu uzskatīt par tā GUI vadītāju, ko redz pieteicies cilvēks. Šī neatbilstība rada komandu, kas beidzas tīri un neko nemaina, un tas ir visdārgākais kļūdas veids, ko noskaidrot no žurnāla.

Pēc tam nosūtiet paša īpašnieka atvienošanu

Ja GUI ir instalēta piemēra ceļā un ir profils ar nosaukumu office, visa komanda ir viena rinda:

"C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --command disconnect office

Aizstājiet to ar savu reālo instalācijas ceļu un precīzu konfigurācijas nosaukumu, ieskaitot lielos un mazos burtus tā, kā GUI tos rāda. Projekta komandu dokumentācija uzskaita atbalstītās GUI vadības, un šis piemērs pieder tikai OpenVPN GUI — tā nav komanda katrai lietotnei, kuras nosaukumā ir OpenVPN.

Pakalpojumam piederošam tunelim pareizā vadība ir pakalpojums, nevis GUI binārais fails. Pirms kaut ko apturēt pārbaudiet instalēto pakalpojumu un tā pārvaldītos profilus, jo apturēšana var nogāzt vairākus tuneļus uzreiz, un rezultātu pa profiliem jūs nesaņemsit.

Pārbaudiet, ka nekas cits nekrīt

GUI dokumentē arī komandu disconnect_all, un tieši tās tvērums ir iemesls, kāpēc tā ir nepareizais rīks skriptam, kuram jāaptur tikai office. Ja vienkāršības dēļ rodas kārdinājums to izmantot, pajautājiet, kas vēl šajā mašīnā ir savienots un kā lietotājs to pamanīs.

taskkill /F /IM openvpn.exe ir sliktāka divos veidos. Tā atlasa procesus pēc izpildāmā faila nosaukuma un piespiež pārtraukšanu, tāpēc tā neizsaka ne profila nosaukumu, ne īpašnieka parasto atvienošanas secību. To saukt par kārtīgu izslēgšanu nozīmē paslēpt abas problēmas aiz viena izejas statusa.

Lai kādu ceļu jūs izvēlētos, pirms izmaiņām pārbaudiet ietekmes apjomu: uzskaitiet savienotos profilus, atzīmējiet, kuriem jāpaliek, un pēc tam pārbaudiet tos vēlreiz.

Apstipriniet stāvokli, nevis izejas kodu

Pēc atvienošanas pieprasīšanas lasiet norādītā savienojuma stāvokli caur tā īpašnieku, nevis paļaujoties uz komandas atgriezto vērtību. Ja nākamajam solim pēc izjaukšanas vajag tīklu, gaidiet šo stāvokļa maiņu ar skaidru noildzes laiku, nevis pieņemiet, ka tīrīšana beidzās, kad process atgriezās. Skripts, kas sacenšas ar izjaukšanu, ik pa laikam neizdosies, un vaina tiks uzlikta VPN.

Ja stāvoklis nekad nemainās, īpašnieks, visticamāk, nav tas, uz kuru jūs vērsāties. Vēlreiz pārbaudiet sesiju un kontu pirms pārejas uz spēcīgāku komandu.

Ko ierakstīt žurnālā

Ierakstiet profila nosaukumu, uzrunāto īpašnieku un palaišanas kontekstu, kā arī iegūto stāvokli. Neizgāziet pilnu konfigurāciju vai akreditācijas datus uzdevuma žurnālā un neierakstiet komandrindu, ja tajā ir ceļš uz failu ar noslēpumiem.

Kļūdas ziņojums, kurā nosaukts profils un konteksts, ir pietiekams, lai nākamā persona atjaunotu problēmu. Žurnāls, kurā ierakstīts tikai vispārīgs izejas kods, viņus aizsūta atpakaļ uz sākumu, un tieši tur minējumi sākas no jauna.

Saistītie raksti