Bir OpenVPN GUI profilini ayırın, bütün tunelləri deyil
GUI ilə idarə olunan tunel GUI əmri, xidmət isə xidmət nəzarəti tələb edir. Skript yazmazdan əvvəl profilin hansı proqrama aid olduğunu müəyyən edin.
Bağlantının kəsilməsini skriptləşdirmək adətən bir səbəbdən uğursuz olur: skript yanlış sahibə müraciət edir. İcma OpenVPN GUI tərəfindən idarə olunan tunel həmin GUI sessiyasına aiddir, Windows xidməti tərəfindən başladılan tunel xidmətə aiddir, OpenVPN Connect isə heç birinə aid deyil. Bu yoxlamaları sıra ilə keçin və sahib qeyri-müəyyən olduqda dayanın. Sahib qeyri-müəyyən olduğu üçün kill əmri göndərmək — bir profilin ayrılmasının bütün saytın kəsilməsinə çevrilmə yolu budur.
GUI ilə idarə olunan bağlantı üçün faydalı əmr openvpn.exe prosesinə siqnal deyil, GUI-yə göndərilən mesajdır.
Əvvəlcə sahibi müəyyənləşdirin
Heç nə yazmadan əvvəl hansı proqramın həqiqətən bağlı vəziyyəti göstərdiyinə baxın. Sistem nişanındakı ikon GUI sessiyasının sahib olduğunu bildirir. Xidmət qeydi xidmətin sahib olduğunu bildirir. Öz profil siyahısı olan ayrıca proqram pəncərəsi heç birini bildirmir və ona öz versiyaya xas interfeysi tətbiq olunur.
Hesabı və iş masası sessiyasını da yoxlayın. Başqa istifadəçi kimi və ya interaktiv olmayan sessiyada işləyən planlaşdırılmış tapşırığın, daxil olmuş şəxsin gördüyü GUI-ni idarə etdiyini güman etmək olmaz. Bu uyğunsuzluq təmiz şəkildə bitən və heç nəyi dəyişməyən əmr yaradır ki, bu da jurnaldan ayırd etmək üçün ən bahalı nasazlıq növüdür.
Sonra sahibin öz ayırma əmrini göndərin
GUI nümunədəki yolda quraşdırılıbsa və office adlı profil varsa, bütün əmr bir sətirdir:
"C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --command disconnect officeHəqiqi quraşdırma yolunuzu və konfiqurasiya adını GUI-nin göstərdiyi registrlə əvəz edin. Layihənin əmr sənədləri dəstəklənən GUI idarəetmələrini sadalayır və bu nümunə yalnız OpenVPN GUI-yə aiddir — adında OpenVPN olan hər proqram üçün əmr deyil.
Xidmətə aid tunel üçün düzgün idarəetmə GUI faylı deyil, xidmətin özüdür. Nəyisə dayandırmazdan əvvəl quraşdırılmış xidməti və onun idarə etdiyi profilləri yoxlayın, çünki dayandırma bir neçə tuneli eyni anda sala bilər və siz profil üzrə nəticə almayacaqsınız.
Başqa heç nəyin düşmədiyini yoxlayın
GUI həmçinin disconnect_all əmrini sənədləşdirir və onun əhatəsi məhz yalnız office profilini dayandırmalı skript üçün səhv alət olmasının səbəbidir. Sadəlik üçün ondan istifadə etmək istəyirsinizsə, həmin maşında başqa nəyin bağlı olduğunu və istifadəçinin bunu necə görəcəyini soruşun.
taskkill /F /IM openvpn.exe iki cəhətdən pisdir. O, prosesləri icra faylının adına görə seçir və məcburi dayandırma tətbiq edir, yəni nə profil adını, nə də sahibin normal ayırma ardıcıllığını ifadə edir. Bunu zərif bağlanma adlandırmaq hər iki problemi tək çıxış statusunun arxasında gizlədir.
Hansı yolu seçsəniz də, dəyişiklikdən əvvəl təsir dairəsini yoxlayın: bağlı profilləri sadalayın, hansının qalmalı olduğunu qeyd edin və sonra onları yenidən yoxlayın.
Çıxış kodunu deyil, vəziyyəti təsdiqləyin
Ayırma tələbindən sonra əmrin qaytardığı dəyərə güvənmək əvəzinə, adı çəkilən bağlantının vəziyyətini sahibi vasitəsilə oxuyun. Növbəti addım dağıdılmadan sonra şəbəkə tələb edirsə, proses qayıdanda təmizliyin bitdiyini güman etmək əvəzinə, açıq taym-aut ilə həmin vəziyyət dəyişikliyini gözləyin. Dağıdılma ilə yarışan skript arabir uğursuz olacaq və günah VPN-ə yazılacaq.
Vəziyyət heç dəyişmirsə, sahib çox güman ki, müraciət etdiyiniz deyil. Daha güclü əmrə keçməzdən əvvəl sessiyanı və hesabı yenidən yoxlayın.
Jurnala nə yazılmalıdır
Profil adını, müraciət etdiyiniz sahibi və işə salma kontekstini, həmçinin yaranan vəziyyəti qeyd edin. Tam konfiqurasiyanı və ya etimad məlumatlarını tapşırıq jurnalına tökməyin və əmr sətrində sirlər olan faylın yolu varsa, onu jurnala yazmayın.
Profili və konteksti adlandıran xəta mesajı növbəti şəxsin problemi təkrar yaratması üçün kifayətdir. Yalnız ümumi çıxış kodu yazan jurnal onları başlanğıca qaytarır və təxmin məhz orada yenidən başlayır.