2017-12-25 21 views
1

私はこれらのパラメータでvb.netからタスクをスケジューリングしています。タスクを正しく生成して実行します。これはローカルで正しく動作しますが、私はそのタスクをサーバー上に作成する必要があります。何か案は?他のコンピュータからWindowsサーバのタスクスケジュール

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 

答えて

1

静的connectメソッドを試してみてください...あなたは、サーバーへの資格情報が必要になります.... https://msdn.microsoft.com/en-us/library/windows/desktop/aa383451(v=vs.85).aspx

+0

ありがとうございます、私はこの例を使用しています!ユーザーがログオンしているかどうかを実行することは可能ですか? – Sorginah

+0

あなたは、このプログラムが実行されたマシンにログインしているか、またはタスクスケジュールにリモートからアクセスしているマシンにログインしたことを意味しますか? – Ctznkane525

+0

Imがタスクをスケジュールするためにアクセスしているマシン。私の設定を変更しようとしていますが、それがどれであるかわかりません。 ここをクリックしてください: https://msdn.microsoft.com/en-us/library/windows/desktop/aa383480(v=vs.85).aspx – Sorginah

0

これが働いている、私はちょうど上のサーバ偶然に追加する必要があり、「接続を()」

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) 
関連する問題