利用 PowerShell 实现 VPN 断线重播
第一步:编写连接 VPN 的脚本
通过rasdial
命令可以连接 VPN,系统中需要提前添加名为CD
的 VPN,用户名aaa
,密码bbb
,可以将连接的结果和当前时间存入vpn.log
文件供后续查看。
# vpn-conn.ps1
$ras = rasdial CD aaa bbb
$current_time = Get-Date -Format 'yyyy-MM-dd HH:mm:ss'
$current_time , $ras >> D:\script\vpn.log
第二步:编写 PowerShell 计划任务脚本
Register-ScheduledJob
创建计划任务,Get-ScheduledJob
获取计划任务,New-JobTrigger
定义触发器,Add-JobTrigger
给计划任务添加触发器。
$jobName = 'vpn-conn'
$filePath = 'D:\script\vpn-conn.ps1'
#创建任务
Register-ScheduledJob -Name $jobName -FilePath $filePath
#获取任务
$job = Get-ScheduledJob -Name $jobName
#定义触发器
$jobTrigger = New-JobTrigger -Once -At (Get-Date).AddMinutes(1) -RepetitionInterval (New-TimeSpan -Minutes 10 ) -RepeatIndefinitely
#添加触发器
$job | Add-JobTrigger -Trigger $jobTrigger
以上命令执行完成后,在系统的计划任务里可以看到已成功添加,另外可以直接用Disable-ScheduledJob
和Unregister-ScheduledJob
来禁用任务和删除任务。
# 禁用任务
Disable-ScheduledJob -Name vpn-conn
# 删除任务
Unregister-ScheduledJob -Name vpn-conn
标签:PowerShell, Windows, 网络