
答え1
私は見つけたこのリンクは、多かれ少なかれ問題の解決になっているようですが、上記の Linux スクリプトの方がうまく機能しました。最後のほうのプロセス終了コードが正しく機能していないことがわかったので、それを削除したらすべてうまくいきました。また、以下の説明に従ってサービス コマンドを変更し、次のようにしました。
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "cmd"
WScript.Sleep 100
WshShell.AppActivate "C:\Windows\system32\cmd.exe"
WScript.Sleep 1000
WshShell.SendKeys "telnet 192.168.0.1~"
WScript.Sleep 1000
WshShell.SendKeys "admin~"
WScript.Sleep 1000
WshShell.SendKeys "admin~"
WScript.Sleep 2000
WshShell.SendKeys "wan set service pppoa_0_38_0_d --protocol pppoa --conntrigger manual~"
WScript.Sleep 12000
WshShell.SendKeys "~"
WScript.Sleep 1000
WshShell.SendKeys "wan set service pppoa_0_38_0_d --protocol pppoa --conntrigger always~"
WScript.Sleep 6000
WshShell.SendKeys "~"
WScript.Sleep 1000
WshShell.SendKeys "logout~"
WScript.Sleep 6000
WshShell.SendKeys "~"
WScript.Sleep 1000
WshShell.SendKeys "exit~"
これをサフィックス付きのファイルにコピーし.vbs
、編集してルーターの IP アドレス、ログイン ユーザーとパスワード、サービス名とプロトコルを更新します。後者については、telnet
手動でログインして次のように入力する必要があります。
wan show service
スクリプト内でcmd
、編集したスクリプトを次のように呼び出します。
start [/wait] reconnect.vbs
/wait
次のコマンドに進む前にスクリプトを完了したい場合に使用します。
私が見つけた問題の 1 つは、ルータがオンラインのときに呼び出されると切断状態のままになることですが、2 つのサービス呼び出し間の遅延を増やすとこの問題は解決しました。この遅延または他の遅延を微調整する必要があるかもしれません。