Un script de desconexión adoita fallar por unha razón: diríxese ao propietario equivocado. Un túnel xestionado pola GUI comunitaria de OpenVPN pertence á sesión desa GUI, un túnel iniciado por un servizo de Windows pertence ao servizo, e OpenVPN Connect non pertence a ningún dos dous. Percorra estas comprobacións en orde e detéñase cando o propietario non estea claro. Enviar unha orde kill porque o propietario era ambiguo é xusto como a desconexión dun só perfil se converte nunha caída de todo o sitio.

Para unha conexión xestionada pola GUI, a orde útil é unha mensaxe á GUI, non un sinal a openvpn.exe.

Primeiro, identifique o propietario

Mire que programa mostra realmente o estado conectado antes de escribir nada. Unha icona na bandexa significa que a posúe a sesión da GUI. Unha entrada de servizo significa que a posúe o servizo. Unha ventá de aplicación aparte coa súa propia lista de perfís non significa ningunha das dúas cousas, e aplícaselle a súa propia interface específica de versión.

Comprobe tamén a conta e a sesión de escritorio. Unha tarefa programada que se executa como outro usuario, ou nunha sesión non interactiva, non debe darse por suposto que controla a GUI que ve unha persoa conectada. Esa discrepancia produce unha orde que remata limpiamente e non cambia nada, que é o tipo de fallo máis caro de depurar a partir dun rexistro.

Despois envía a desconexión propia do propietario

Coa GUI instalada na ruta do exemplo e un perfil chamado office, a orde completa é unha liña:

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

Substitúa por a súa ruta de instalación real e o nome exacto da configuración, incluídas as maiúsculas tal como as mostra a GUI. A documentación de ordes do proxecto enumera os controis de GUI admitidos, e este exemplo pertence só a OpenVPN GUI — non é unha orde para calquera aplicación que leve OpenVPN no nome.

Para un túnel propiedade dun servizo, o control correcto é o servizo, non o binario da GUI. Inspeccione o servizo instalado e os perfís que xestiona antes de deter nada, porque unha parada pode derrubar varios túneles á vez e non obterá un resultado por perfil.

Comprobe que non cae nada máis

A GUI tamén documenta unha orde disconnect_all, e o seu alcance é exactamente a razón pola que é a ferramenta equivocada para un script que só debe deter office. Se lle tenta usala por simplicidade, pregunte que máis está conectado nesa máquina e como o notará o usuario.

taskkill /F /IM openvpn.exe é peor por dous motivos. Selecciona procesos polo nome do executábel e forza a terminación, así que non expresa nin un nome de perfil nin a secuencia normal de desconexión do propietario. Chamarlle a iso apagado ordenado esconde ambos problemas detrás dun único estado de saída.

Sexa cal sexa o camiño que tome, verifique o alcance do impacto antes do cambio: enumere os perfís conectados, anote cales deben sobrevivir e vólvaos comprobar despois.

Confirme o estado, non o código de saída

Tras solicitar a desconexión, lea o estado da conexión nomeada a través do seu propietario en lugar de confiar no valor de retorno da orde. Se o paso seguinte necesita a rede despois da desmontaxe, espere ese cambio de estado cun tempo de espera explícito en vez de supor que a limpeza rematou cando o proceso volveu. Un script que corre á par da desmontaxe fallará de forma intermitente e a culpa recaerá na VPN.

Se o estado nunca cambia, o propietario probablemente non é o que vostede abordou. Volva comprobar a sesión e a conta antes de escalar a unha orde máis forte.

Que pór no rexistro

Rexiste o nome do perfil, o propietario ao que se dirixiu e o contexto de inicio, ademais do estado resultante. Non bote a configuración completa nin as credenciais no rexistro da tarefa, e non rexiste a liña de ordes se contén unha ruta a un ficheiro con segredos.

Unha mensaxe de erro que nomee o perfil e o contexto abonda para que a seguinte persoa reproduza o problema. Un rexistro que só anota un código de saída xenérico devólveos ao comezo, e é xusto alí onde as conxecturas volven comezar.

Artigos relacionados