【问题标题】:Task schedule in windows server from other computer来自其他计算机的 Windows 服务器中的任务计划
【发布时间】:2018-06-06 20:00:53
【问题描述】:

我正在使用这些参数从 vb.net 调度一个任务。正确生成任务并执行它。这在本地工作正常,但我需要在服务器上创建该任务。有什么想法吗?

Using tService As New TaskService()
    Dim Fecha As DateTime = DateTime.Parse(txtFDesde.Text + " " + txtHDesde.Text)
    Dim tTime As New TimeTrigger()
    Dim tDefinition As TaskDefinition = tService.NewTask
    tDefinition.RegistrationInfo.Description = "Tarea programada para ejecutar"
    tDefinition.Settings.RunOnlyIfLoggedOn = False
    tTime.StartBoundary = New DateTime(Fecha.Year, Fecha.Month, Fecha.Day, Fecha.Hour, Fecha.Minute, 0)
    tDefinition.Triggers.Add(tTime)
    Dim url As String = "http://localhost:5000/" & Param
    tDefinition.Actions.Add(New ExecAction("cmd.exe", "/c start " & url))
    tService.RootFolder.RegisterTaskDefinition("Test " & Param, tDefinition)
End Using

【问题讨论】:

    标签: vb.net scheduled-tasks windows-server


    【解决方案1】:

    尝试静态连接方法...您需要服务器凭据...https://msdn.microsoft.com/en-us/library/windows/desktop/aa383451(v=vs.85).aspx

    【讨论】:

    • 谢谢,我使用了这个例子,它正在工作!无论用户是否登录都可以运行??
    • 您的意思是登录到执行该程序的机器,还是登录到您正在远程访问其任务计划的机器?
    • 进入我正在访问的机器以安排任务。我试图更改它的设置,但我找不到是哪一个。我在这里找它:msdn.microsoft.com/en-us/library/windows/desktop/…
    • 理想情况下,您将希望使用某种类型的服务帐户,并且您将在您的代码中使用该帐户,如果您出于某种相关原因 rdp 进入机器。
    【解决方案2】:

    这是可行的,我只需在“Connect()”上添加服务器参数

    Const TriggerTypeTime = 1
    Const ActionTypeExec = 0
    
    Dim service = CreateObject("Schedule.Service")
    Call service.Connect()
    
    Dim rootFolder
    rootFolder = service.GetFolder("\")
    
    Dim taskDefinition
    taskDefinition = service.NewTask(0)
    
    Dim regInfo
    regInfo = taskDefinition.RegistrationInfo
    regInfo.Description = "Testing"
    regInfo.Author = "Me"
    
    Dim principal
    principal = taskDefinition.Principal
    
    ' revisar
    principal.LogonType = 3
    
    Dim settings
    settings = taskDefinition.Settings
    settings.Enabled = True
    settings.StartWhenAvailable = True
    settings.Hidden = False
    
    Dim triggers
    triggers = taskDefinition.Triggers
    
    Dim trigger
    trigger = triggers.Create(TriggerTypeTime)
    
    Dim startTime
    startTime = L_TraducirParaTrigger(Fecha)
    
    trigger.StartBoundary = startTime
    trigger.Id = "TimeTriggerId"
    trigger.Enabled = True
    
    Dim Action
    Action = taskDefinition.Actions.Create(ActionTypeExec)
    Action.Path = "C:\Windows\System32\cmd.exe"
    Dim url As String = "http://localhost:5000/" & L_IdEjecucion
    Action.Arguments = "/c start " & url
    'revisar último parámetro
     Call rootFolder.RegisterTaskDefinition(L_Id, taskDefinition, 6, , , 3)
    

    【讨论】:

      猜你喜欢
      • 2018-04-04
      • 2011-02-18
      • 2016-02-10
      • 2010-09-28
      • 2021-04-19
      • 1970-01-01
      • 2016-10-01
      相关资源
      最近更新 更多