概述
部分银行ukey 长时间不使用后会导致休眠,出现虽然有连接,但是读不到证书,可以用定时重置端口的办法,调用接口 http://ip/usb_server/reset_port,参数为
{"port":"B5-1-2","vid_pid":"096e:0303:0314"}
其中port 和vid_pid 的值从管理后台获得
注意需要选择开启模拟拔插
或者点进去
windows 设置定时任务
1、编辑执行文件usbportreset.ps1
$url = "http://192.168.2.245/usb_server/reset_port"
$text = @{
"port"="B5-1-2"
"vid_pid"="096e:0303:0314"
} | ConvertTo-Json
Invoke-WebRequest -UseBasicParsing $url -ContentType "application/json" -Method POST -Body $text
修改ip 为你的usbserver 的ip, 以及需要重置的port和对应的vid_pid,如果需要重置多个端口,就写多行,例如
$url = "http://192.168.2.245/usb_server/reset_port"
$text = @{
"port"="B5-1-1"
"vid_pid"="096e:0303:0314"
} | ConvertTo-Json
Invoke-WebRequest -UseBasicParsing $url -ContentType "application/json" -Method POST -Body $text
$text = @{
"port"="B5-1-2"
"vid_pid"="096e:0303:0314"
} | ConvertTo-Json
Invoke-WebRequest -UseBasicParsing $url -ContentType "application/json" -Method POST -Body $text
GUI 方式设置
打开任务计划程序,设置触发器为每周星期六的23:40 执行
操作填写
程序或脚本填
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
参数填
-ExecutionPolicy Bypass -File d:\work\usbportreset.ps1
其中d:\work\usbportreset.ps1 改成你自己的执行文件
命令行方式
打开powershell, 输入
chtasks /create /tn "usb 定时任务每周" /tr "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File D:\work\\usbportreset.ps1" /sc WEEKLY /mo 6 /st 23:40
如果是每天执行,输入
schtasks /create /tn "usb 定时任务每天" /tr "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File D:\work\usbportreset.ps1" /sc DAILY /st 23:40
效果测试
在powershell 下运行
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File D:\work\usbportreset.ps1
应该能看到ukey的灯会熄灭后点亮,如果没有,请检查执行文件中的参数
linux 设置定时任务
调整脚本usbportreset.sh 中的参数
curl -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -i 'http://192.168.2.245/usb_server/reset_port' --data '{"port":"B5-1-2","vid_pid":"096e:0303:0314"}'
把 usbportreset.sh 拷贝到工作目录,调整属性为可执行,
chmod a+x usbportreset.sh
然后在 crontab -e 配置定时脚本
每周六执行
40 23 * * 6 /root/usbportreset.sh
每天执行
40 23 * * * /root/usbportreset.sh