这是我的连接脚本
- - -开始 - - -
vpncmd localhost /client
accountconnect myConnectionName
- - -结尾 - - -
执行后连接脚本,屏幕结果如下:
Connected to VPN Client "localhost".
VPN Client>
accountconnect 我的连接名称未被执行。
如何得到accountconnect 我的连接名称在提示符下运行VPN Client>
?
答案1
vpncmd
可以使用开关将带有命令的文件用作输入/IN:file
。
这是我用来实现事物自动化的方法。
就像是 :
vpncmd localhost /client /in:commands.txt
然后输入你的命令commands.txt
:
accountconnect myConnectionName
如果您只想发送一个命令,那么/IN
switch 可能会有点小题大做。
在这种情况下,你可以使用/CMD
开关,例如:
vpncmd localhost /client /CMD accountconnect myConnectionName
有关命令行参数的进一步阅读:
答案2
这是一个基于以下文档编写的 bash 脚本 https://www.softether.org/4-docs/1-manual/6._Command_Line_Management_Utility_Manual/6.2_General_Usage_of_vpncmd#6.2.3_Command_Line_Parameters_When_Starting_a_vpncmd_Command
#!/bin/bash
VPN_HOME=/usr/apps/vpnclient
NEW_IP=192.168.1.2
ACCOUNT_NAME=
function start(){
cd $VPN_HOME
sudo ./vpnclient start
./vpncmd localhost /client /CMD remoteenable
./vpncmd localhost /client /CMD accountconnect $ACCOUNT_NAME
#You can add your commands here
}
function stop(){
cd $VPN_HOME
sudo ./vpnclient stop
}
START="start"
STOP="stop"
HELP="help"
function help(){
echo "#################################################################";
echo "#---------------------------Help--------------------------------#";
echo "#################################################################";
echo "./vpn-manger.sh command
echo "-----------------------------------------------------------------";
echo "commands are $START , $STOP or $HELP"
echo "#################################################################";
}
function commands(){
COMMAND=$1
case "${COMMAND,,}" in
"$START") start; ;;
"$STOP") stop; ;;
"$HELP") help; ;;
*) echo "Please Check your Command"; ;;
esac
}
commands $1;