通过域名运行群晖网络存储服务器中的AutoHotkey脚本 2022年4月
不下载文件直接通过域名在公网上运行群晖网络存储服务器中的AutoHotkey脚本,并批量自动静默的安装和设置电脑应用程序软件的方法。
- 通过AutoHotkey脚本的自定义主窗口中的进度条了解AutoHotkey脚本执行的进度。
- 通过AutoHotkey脚本的后台模拟键盘鼠标和控件操作对nd2cmd.exe和WinSCP进行命令行参数传递(为何使用nd2cmd.exe,因为nd2cmd.exe提供了命令行参数传递的功能,命令行比AutoHotkey脚本的模拟键盘和鼠标操作更可靠,模拟键盘鼠标对窗口和控件操作不稳定有可能会操作失败。为何使用WinSCP,因为,大批量上传下载文件时WinSCP、Xftp和FileZilla_Pro要比RaiDrive、WebDrive更可靠,更稳定)
- 通过SetTimer和操作,检测,重试的方式确保不可靠的窗口操作和控件操作的顺利进行(为何要使用SetTimer而不使用Loop,因为,SetTimer可以多开多个SetTimer同时进行操作,但是Loop无法多开并行操作。为何使用检测重试,因为,SetTimer可以提高脚本的可靠性,当操作没有达到预期效果时脚本会立即重试操作。有时候对窗口的模拟操作会失败,只能重试,并且检测重试无需等待窗口完成创建或者显示成功,有效的节省了时间,提高了脚本的性能)假如情况特殊脚本进入长期等待或者死循环等情况时,用户可以通过控制主窗口终止脚本或者重启脚本。
- 群晖网络附属存储服务器,DDNS动态域名解析,华硕无线路由器,端口转发,AutoHotkey脚本调用nd2cmd.exe或者WinSCP连接群晖网络附属存储服务器的WebDAV套件的文件服务。(为何不使用群晖的SFTP文件服务,因为,我尝试了多次连接群晖SFTP都没有成功,也不知道是不是我的设置错误还是NetDrive2的缺陷,不管他了,反正都差不多,WebDAV+HTTPS测试成功了,就用WebDAV好了,区别不大。为何不使用RaiDrive或者WebDrive来映射网络驱动器,因为,我在获取RaiDrive窗口中的控件的类名时遇到了困难)
- 为了防止泄密,请用feiyue的??AHK源代码加密器 v3.2??( AHK Source Code Encryptor v3.2 By FeiYue)对AutoHokey脚本加密,保护群晖网络附属存储服务器中的文件,不让未经授权的人员查看自己的隐私秘密文件。同时,也可以用字符串加密AutoHotkey函数对群晖用户名和群晖密码进行加密(建议在内存中解密,不要在磁盘中解密群晖密码)。
- 为了防止丢失文件,请使用群晖网络附属存储服务器的 RAID 1 镜像存储池、群晖Hyper Backup套件和群晖Cloud Sync套件来定时备份重要文件。注意:RAID 1 镜像存储池无法代替群晖Hyper Backup套件的备份任务,RAID 1 镜像存储池无法找回清空回收站之后的已删除的文件。
- 以下一些AutoHotkey源代码片段提供给大家参考,希望各位读者能够制作出自己私人定制的群晖网络附属存储服务器的映射网络驱动器的单文件的绿色免安装的应用程序软件包。
我的某台群晖网络存储服务器的SFTP文件服务的用户名是:
ds1821+usr-A_K-s_s_P_w-R_-_-Z_Y_-Y_w_K-q_u-U_U-_x_-_N-v_-w_A+end
我的某台群晖网络存储服务器的SFTP文件服务的密码是:
ds1821+pwd-AA8-e-KsL_5_6w77-Z-_Y_-M-G-R_E_dV-U-_x_pp_-79_wNA+end
; 用AutoHotkey脚本调用NetDrive2的nd2cmd.exe程序异地远程连接群晖网络附属存储服务器的WebDAV Server套件的文件服务的测试代码片段
Run,"C:\Program Files\NetDrive2\nd2cmd.exe" -c m -t dav -u https://你的群晖DDNS主机名称.myds.me:你的华硕无线路由器端口转发的外部端口 -a 你的群晖用户名(我的用户名长度是64个字符) -p 你的群晖密码(我的密码长度是64个字符,密码中含有减号 下划线 等标点符号) -d s -l 你的映射网络驱动器卷标
; 说明:s:\Folder1\Folder2是映射网络驱动器后需要打开的群晖网络附属存储服务器中的文件夹
Run,s:\Folder1\Folder2
; 说明:AutoHotkeyScript1.ahk是映射网络驱动器后需要运行的群晖网络附属存储服务器中的脚本
Run,s:\Folder1\Folder2\AutoHotkeyScript1.ahk
Run,s:\Folder1\Folder2\AutoHotkeyScript2.ahk
为何要用AutoHotkey脚本连接群晖网络附属存储服务器,因为,用AutoHotkey脚本连接群晖的WebDAV Server可以在任何时间,任何地点进行,非常方便快捷,映射网络驱动器后可以直接在网络驱动器中运行其他AutoHotkey脚本,可以启动Maye和Rolan通过拼音首字母序列搜索已索引的文件,可以用Everything通过文件名和文件夹名快速的搜索群晖网络附属存储服务器中的文件(请预先索引文件夹),可以用FileLocator Pro或者Archivarius 3000对群晖网络附属存储服务器中的文件进行全文搜索(Full-Text Search)(需要预先创建索引)。通过AutoHotkey脚本连接群晖网络附属存储服务器无需记忆长达64个字符的用户名,无需记忆长达64个字符的超级复杂的密码,只需记住Auto Hotkey中简短的密码即可,登录密码可以简短到4个数字,加密并编译之后的AutoHotkey脚本和WinSCP程序一起用WinRAR压缩打包成单文件绿色免安装应用程序软件,打包后的可执行自解压缩包只保存在自己经常使用的设备上,由于陌生人不知道访问WebDAV文件服务的DDNS网址URL,不知道外部端口,不知道用户名,不知道密码,并且64个字符的用户名和64个字符的密码之中含有减号、下划线等标点符号,所以群晖网络附属存储服务器对于陌生人来说比较难以渗(黑)透(客),比较难以入侵,比较难以攻破,比较难以窃密,比较难以搞破坏。而对于已授权用户来说只需要双击自解压程序并输入简短密码就可以直接访问群晖网络附属存储服务器中的文件了。本文中的简短密码是abc333
NetDrive2用于运行群晖网络附属存储服务器中的AutoHotkey脚本、用于运行群晖网络附属存储服务器中的电脑软件安装包、用于打开群晖网络附属存储服务器中的文档、表格、图片、音乐、视频、国语中字电影等各种文件,无需复制,无需下载,直接在群晖网络附属存储服务器映射网络驱动器中打开运行,非常方便快捷简单易用。
如需大量传输文件则应当使用WinSCP,同样只需记忆简短密码,并且WinSCP无需安装就可以使用,非常简便快捷。
; 群晖WebDAV Server简易登录器
; 无需记忆超级复杂的64个字符的群晖用户名和超级复杂的64个字符的群晖密码
; 并且超级复杂的64个字符的群晖用户名中仍然可以包含减号、下划线等标点符号
; C:\Prog\www.netdrive.net\netdrive2\netdrive2.ahk
; WinSCP 一键登录群晖网络存储服务器SFTP文件服务的AutoHotkey脚本源代码
; 群晖SFTP设置成超级长超级复杂超级繁琐的密码不容易记忆,此脚本嫁接转换成容易记忆的简单密码 abc333
#SingleInstance,force
#Persistent
; 身份验证,请使用飞跃的 AHK 源码加密器 v3.1 -FeiYue 加密工具对AutoHotkey源代码加密保护SFTP登录信息
; 请使用专用函数对SFTP密码字符串进行加密处理
InputBox, password, Enter Password, (your Input will be hidden), hide
Needle := "abc333"
if InStr(password, Needle)
; 正在验证密钥文件是否有效
; 键盘和鼠标闲置超时时自动断开与群晖的SFTP连接保护隐私数据,防止泄密
SetTimer,ScreenLockAndOff,500
; 群晖SFTP文件服务请使用,复杂用户名,复杂密码,复杂网址,冷门端口和高强度私钥
; 群晖SFTP用超级复杂的强密码连接,用户只需要记住简单的密码 abc333 就可以了。
; Run,%A_ScriptDir%\WinSCP.exe "SynologySFTPUserName:SynologySFTPPassword---ABC333&^#_--$!!!~k3$$3%8^^92((3'7f6s;'..?//\++_S@SynologySFTPDDNS.myds.me:49376" /Desktop /UploadIfAny
IfNotExist,S:\Drive1.2.3_WPS_RAID1_18TB\GoodSync定时单向备份到D盘\01_单位
RunWait,"C:\Program Files\NetDrive2\nd2cmd.exe" -c m -t dav -u https://abcde.myds.me:37926 -a WebDAV-USER_S-AzKM-N-f_9-J_K__U-Y_E--GFh---d_th-r63745-zDx-b_END -p WebDAV-Password-H-U_-AjU_-I_--R_YH_Goo_DK_U-Y-h---d_th-r6x-b_END -d s -l ds1821p }
Run,s:\Drive1.2.3_WPS_RAID1_18TB\GoodSync定时单向备份到D盘\01_单位
else
ExitApp
return
ScreenLockAndOff()
;9分钟对应的超时毫秒数,9*60*1000=540000,1秒=1000毫秒
if(A_TimeIdlePhysical>540000)
if(A_TimeIdle>540000)
Run,"C:\Program Files\NetDrive2\nd2cmd.exe" -c u -d s
loop,5
;~ 键鼠闲置超时关闭WinSCP保护隐私数据,防止泄密
; WinClose,ahk_class TScpCommanderForm
; WinClose,ahk_exe WinSCP.exe
; Process,Close,WinSCP.exe
;~ 关闭显示器
SendMessage, 0x112, 0xF170, 2,, Program Manager
;~ 锁定电脑桌面
Run,C:\Windows\System32\Rundll32.Exe user32.dll LockWorkStation
SetTimer,ScreenLockAndOff,Delete
REM C:\Prog\一键制作群晖简易登录器便携绿色免安装单文件程序包.bat
REM 此批处理脚本文件最后编辑日期 2022年3月26日
if exist "C:\Program Files (x86)\WinRAR\WinRAR.exe" (
"C:\Program Files (x86)\WinRAR\WinRAR.exe" a -agYYYY.MM.DD_HH-MM-SS -m5 -r -sfx -y -z自解压脚本命令.txt C:\C_Prog_.exe *.*
)else (
"C:\Program Files\WinRAR\WinRAR.exe" a -agYYYY.MM.DD_HH-MM-SS -m5 -r -sfx -y -z自解压脚本命令.txt C:\C_Prog_.exe *.*
)
;下面的注释包含自解压脚本命令 REM C:\Prog\WinSCP\自解压脚本命令.txt
Path=C:\Prog\WinSCP
Setup=C:\Prog\WinSCP\Login.exe
Silent=2
Overwrite=2