gpt4 book ai didi

powershell - 如何使用任务计划程序运行Cisco AnyConnect

转载 作者:行者123 更新时间:2023-12-03 00:16:45 25 4
gpt4 key购买 nike

我想每晚运行一个脚本,该脚本将:

  • 启动VPN
  • 执行SQL查询
  • 断开VPN的

  • 目前,我有1-3的脚本,但是在将它们作为任务进行调度时遇到了问题。

    当我手动运行它们时,每个脚本都有效。

    它也可以在我安排任务并设置用户仅在上登录后运行并手动运行时运行

    但是,当我选择运行时,无论用户是否登录,都不会发生任何事情。 VPN永不连接,因此sql无法运行,等等。

    我已经对任务管理器中引用每个脚本的方式进行了各种更改(使用“s”,使用Program / Script中的完整路径或使用Start In进行exp),但似乎没有任何效果。

    有人知道导致任务无法运行的原因吗?

    以下是一些屏幕截图和代码:

    enter image description here
    enter image description here

    enter image description here

    我开始认为,当我未登录时,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/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com