Скриптата за исклучување обично не успева од една причина: се обраќа на погрешен сопственик. Тунел управуван од заедничката OpenVPN GUI припаѓа на сесијата на тој GUI, тунел започнат од Windows служба припаѓа на службата, а OpenVPN Connect не припаѓа на ниту еден од двата. Поминете ги овие проверки по ред и запрете кога сопственикот е нејасен. Испраќање kill команда затоа што сопственикот бил двосмислен е токму патот на кој исклучувањето на еден профил станува прекин на целата локација.

За врска управувана од GUI, корисна команда е порака до GUI, а не сигнал до openvpn.exe.

Прво определете го сопственикот

Погледнете која програма всушност ја прикажува состојбата на поврзување пред да напишете нешто. Икона во системската лента значи дека сесијата на GUI го поседува. Запис за служба значи дека службата го поседува. Посебен прозорец на апликација со сопствена листа на профили не значи ниту едно од двете, и за него важи неговиот сопствен интерфејс специфичен за верзијата.

Проверете и сметката и сесијата на работната површина. Планирана задача што работи како друг корисник или во неинтерактивна сесија не треба да се смета за контролор на GUI што го гледа најавено лице. Тоа несовпаѓање дава команда што завршува чисто и не менува ништо, а тоа е најскапиот вид дефект за откривање од дневник.

Потоа испратете го сопственото исклучување на сопственикот

Кога GUI е инсталиран на патеката од примерот и постои профил со име office, целата команда е една линија:

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

Заменете ја со вашата вистинска патека на инсталација и точното име на конфигурацијата, вклучувајќи ги големите и малите букви како што ги прикажува GUI. Документацијата за командите на проектот ги наведува поддржаните GUI контроли, и овој пример ѝ припаѓа само на OpenVPN GUI — тоа не е команда за секоја апликација со OpenVPN во името.

За тунел во сопственост на служба, правилната контрола е службата, а не извршната датотека на GUI. Прегледајте ја инсталираната служба и профилите што ги управува пред да запрете нешто, бидејќи запирањето може да урне неколку тунели одеднаш и нема да добиете резултат по профил.

Проверете да не падне нешто друго

GUI документира и команда disconnect_all, и нејзиниот опфат е токму причината зошто е погрешен алат за скрипта што треба да запре само office. Ако ве измамува да ја користите заради едноставност, прашајте што друго е поврзано на таа машина и како корисникот ќе го забележи.

taskkill /F /IM openvpn.exe е полоша на два начина. Ги избира процесите по име на извршната датотека и наметнува присилно прекинување, па не изразува ниту име на профил ниту вообичаената низа на исклучување на сопственикот. Да се нарече тоа уредно гасење ги крие двата проблема зад еден излезен статус.

Кој пат и да го изберете, проверете го опсегот на влијанието пред промената: наведете ги поврзаните профили, забележете кои треба да преживеат и проверете ги повторно потоа.

Потврдете ја состојбата, не излезниот код

Откако ќе го побарате исклучувањето, читајте ја состојбата на именуваната врска преку нејзиниот сопственик наместо да ѝ верувате на повратната вредност на командата. Ако следниот чекор бара мрежа по расклопувањето, чекајте ја таа промена на состојбата со експлицитно временско ограничување наместо да претпоставите дека чистењето завршило кога процесот се вратил. Скрипта што се трка со расклопувањето повремено ќе не успее, а вината ќе падне на VPN.

Ако состојбата никогаш не се смени, сопственикот веројатно не е тој на кого се обратиле. Проверете ги повторно сесијата и сметката пред да прејдете на посилна команда.

Што да се стави во дневникот

Забележете го името на профилот, сопственикот на кого се обратиле и контекстот на стартување, плус добиената состојба. Не истурајте ја целата конфигурација или акредитивите во дневникот на задачата и не ја запишувајте командната линија ако содржи патека до датотека со тајни.

Порака за грешка што ги именува профилот и контекстот е доволна следниот човек да го репродуцира проблемот. Дневник што запишува само општ излезен код ги враќа на почетокот, а токму таму започнува повторно погодувањето.

Поврзани статии