深信服aTrust VPN作为企业级安全解决方案,默认不提供记住密码的功能,导致每次连接都需要手动输入账号密码。对于需要频繁使用VPN的开发人员来说,这一安全措施虽然必要但影响了工作效率。
为此,我开发了一个基于PyAutoGUI的自动登录脚本,通过模拟键盘鼠标操作实现一键登录,既保持了安全性(密码在代码中直接管理),又提高了使用便捷性。
subprocess.Popen
启动VPN客户端pyautogui
实现精准的窗口控制和输入操作pyperclip
安全传递凭证信息import subprocess
import time
import pyautogui
import pyperclip
# 设置全局延迟提高可靠性
pyautogui.PAUSE = 1.0 # 每个PyAutoGUI操作后等待1秒
def auto_login_atrust():
"""
自动打开aTrustTray.exe并完成登录
1. 启动aTrustTray.exe程序
2. 等待程序加载
3. 输入用户名
4. 输入密码
5. 按回车登录
"""
USERNAME = 'admin'
PASSWORD = 'MQan$1a1sar1D7DLMT'
WINDOW_TITLE = 'aTrust'
try:
# 1. 启动aTrustTray.exe
subprocess.Popen(r'C:\Program Files (x86)\Sangfor\aTrust\aTrustTray\aTrustTray.exe')
# 2. 等待程序加载(5秒)
print("等待程序加载...")
time.sleep(5)
# 3. 查找窗口
windows = pyautogui.getWindowsWithTitle(WINDOW_TITLE)
if not windows:
print(f"未找到窗口: {WINDOW_TITLE}")
return
atrust_window = windows[0]
atrust_window.activate()
time.sleep(1)
# 4. 按Tab键聚焦到用户名输入框
pyautogui.press('tab')
time.sleep(0.5)
print("已聚焦到用户名输入框")
# 5. 清空用户名输入框并粘贴用户名
pyautogui.hotkey('ctrl', 'a') # 全选当前内容
time.sleep(0.5)
pyautogui.press('delete') # 删除选中内容
time.sleep(0.5)
# 复制用户名到剪贴板并粘贴
pyperclip.copy(USERNAME)
time.sleep(0.5)
pyautogui.hotkey('ctrl', 'v')
print(f"已粘贴用户名: {USERNAME}")
time.sleep(0.5)
# 6. 按Tab切换到密码输入框
pyautogui.press('tab')
time.sleep(0.5)
print("已聚焦到密码输入框")
# 7. 清空密码输入框并粘贴密码
pyautogui.hotkey('ctrl', 'a') # 全选当前内容
time.sleep(0.5)
pyautogui.press('delete') # 删除选中内容
time.sleep(0.5)
# 复制密码到剪贴板并粘贴
pyperclip.copy(PASSWORD)
time.sleep(0.5)
pyautogui.hotkey('ctrl', 'v')
print("已粘贴密码")
time.sleep(1)
# 8. 按回车登录
pyautogui.press('enter')
print("已按回车登录")
print("自动登录完成")
except Exception as e:
print(f"自动登录失败: {e}")
if __name__ == "__main__":
auto_login_atrust()
USERNAME
: 您的VPN账号PASSWORD
: 您的VPN密码WINDOW_TITLE
: 您的aTrust窗口标题(默认为'aTrust')aTrustTray.exe
路径: 如果安装路径不同请相应修改这个自动登录脚本完美解决了aTrust VPN无法记住密码的问题,通过精确的GUI自动化操作实现了安全便捷的一键登录。代码简洁高效,特别适合需要频繁连接VPN的开发人员使用。
安全提示:请妥善保管包含凭证的脚本文件,建议设置适当的文件权限。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。