我想每晚运行一个脚本,该脚本将:
目前,我有1-3的脚本,但是在将它们作为任务进行调度时遇到了问题。
当我手动运行它们时,每个脚本都有效。
它也可以在我安排任务并设置用户仅在上登录后运行并手动运行时运行
但是,当我选择运行时,无论用户是否登录,都不会发生任何事情。 VPN永不连接,因此sql无法运行,等等。
我已经对任务管理器中引用每个脚本的方式进行了各种更改(使用“s”,使用Program / Script中的完整路径或使用Start In进行exp),但似乎没有任何效果。
有人知道导致任务无法运行的原因吗?
以下是一些屏幕截图和代码:
我开始认为,当我未登录时,VPN客户端会阻止其运行。
我还编写了AutoIt脚本,该脚本在登录后将起作用,但在不登录时将不起作用。
#include <Constants.au3>
;~close any existing vpn
CloseVPN()
;~start cmd
Run("C:\WINDOWS\system32\cmd.exe")
WinWaitActive("C:\WINDOWS\system32\cmd.exe")
;~start vpn
send('"C:\Program Files (x86)\Cisco\Cisco AnyConnect Secure Mobility Client\vpncli.exe"' & "{ENTER}")
Sleep(5000)
;~disconnect vpn
send("disconnect" & "{ENTER}")
;~send connect commands
send("connect VPNADDRESS" & "{ENTER}")
Sleep(2000)
send("USERNAME" & "{ENTER}")
Sleep(2000)
send("PASSWORD" & "{ENTER}")
Sleep(2000)
;~run and wait for sql command
RunSQL();
;~disconnect vpn
send("disconnect" & "{ENTER}")
CloseVPN()
;~close all cmd processes
Local $process4 = ProcessList("cmd.exe")
For $i = 1 To $process4[0][0]
ProcessClose($process4[$i][1])
Next
;~close cmd window
ProcessClose("C:\WINDOWS\system32\cmd.exe")
WinClose("C:\WINDOWS\system32\cmd.exe")
;~-------------------------------------
;~close vpn function
Func CloseVPN()
Local $process1 = ProcessList("vpncli.exe")
For $i = 1 To $process1[0][0]
ProcessClose($process1[$i][1])
Next
Local $process2 = ProcessList("vpnui.exe")
For $i = 1 To $process2[0][0]
ProcessClose($process2[$i][1])
Next
;~ Local $process3 = ProcessList("vpnagent.exe")
;~ For $i = 1 To $process3[0][0]
;~ ProcessClose($process3[$i][1])
;~ Next
EndFunc
;~-------------------------------------
;~run SQL function
Func RunSQL()
;~start cmd
Local $iPID = Run("C:\WINDOWS\system32\cmd.exe")
WinWaitActive("C:\WINDOWS\system32\cmd.exe")
Send('sqlcmd -Q "EXEC sp_Merge" -S MYSQLSERVER -d MYDATABASE -o "C:\MergeScripts\sql_log.txt"' & "{ENTER}")
Send("exit" & "{ENTER}")
ProcessWaitClose($iPID)
EndFunc
最佳答案
http://www.cisco.com/c/en/us/td/docs/security/vpn_client/anyconnect/anyconnect30/release/notes/anyconnect30rn.html
Ctrl + F并键入“版本3.0.5080中的打开警告”
那个版本的AnyConnect似乎有很多问题,这些问题都取决于很多事情。我建议更新到最新版本。如果该版本有适合您的错误,请等待直到发布修复该版本的版本。在那之前,您无能为力。
关于powershell - 如何使用任务计划程序运行Cisco AnyConnect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32502119/