2016-03-01 16 views
1

Я пытаюсь создать несколько запланированных задач с помощью PowerShell до модуля TaskScheduler, что не является вариантом, поскольку это будет использоваться для запуска процесса на внешних клиентских машинах , Поэтому я не могу использовать cmd, поскольку мне нужно каждый раз указывать учетные данные.Создание запланированной задачи, которая выполняется 6 дней в неделю

Я немного вникнул в комобъект, но я этого не понимаю. Я был бы более чем счастлив использовать это, если бы мог выяснить триггеры, в основном мне нужно, чтобы он работал 6 дней в неделю (исключая воскресенье) в определенное время один раз в день.

Я думаю, что у меня есть действие и аргументы, но это спусковой механизм, который пытается понять.

Это блок im, работающий над которым был освобожден от here, поэтому все кредиты там!

try { 
    [Object] $objScheduledTask = New-Object -ComObject("Schedule.Service") 

    if (!($objScheduledTask.Connected)) { 
     try { 
      $objScheduledTask.Connect($env:COMPUTERNAME) 
      $objScheduledTask_Folder = $objScheduledTask.GetFolder('\') 
      $objScheduledTask_TaskDefinition = $objScheduledTask.NewTask(0) 

      #Registration/Definitions 
      $objScheduledTask_RegistrationInfo = $objScheduledTask_TaskDefinition.RegistrationInfo 
      $objScheduledTask_RegistrationInfo.Description = 'My task name' 

      #Define Settings 
      $objScheduledTask_Settings = $objScheduledTask_TaskDefinition.Settings 
      $objScheduledTask_Settings.Enabled = $True 
      $objScheduledTask_Settings.StartWhenAvailable = $True 
      $objScheduledTask_Settings.Hidden = $False 

      #Triggers 
      $objScheduledTask_Triggers = $objScheduledTask_TaskDefinition.Triggers 
      $objScheduledTask_Trigger = $objScheduledTask_Triggers.Create(2) 
      $objScheduledTask_Trigger.StartBoundary = "2011-10-01T04:00:00" 
      $objScheduledTask_Trigger.DaysInterval = 1 
      $objScheduledTask_Trigger.Id = "DailyTriggerId" 
      $objScheduledTask_Trigger.Enabled = $True 

      #Action 
      $objScheduledTask_Action = $objScheduledTask_TaskDefinition.Actions.Create(0) 
      $objScheduledTask_Action.Path = 'task\to\execute.exe' 
      $objScheduledTask_Action.Arguments = '' 
      $objScheduledTask_Action.WorkingDirectory = 'C:\' 

      #Create Task 
      $objScheduledTask_Folder.RegisterTaskDefinition('Sample Scheduled Task Description', $objScheduledTask_TaskDefinition, 6, "System", $null , 5) | out-null 
      Write-Host "Scheduled Task Created Successfully" -ForegroundColor Green 
     } catch [System.Exception] { 
      Write-Host "Scheduled Task Creation Failed" -ForegroundColor Red 
     } 
    } 
} catch [System.Exception]{ 
    Write-Host "Scheduled Task Creation Failed" -ForegroundColor Red 
    Write-Host " EXCEPTION:" $_ -ForegroundColor Red 
} 

ответ

0

Вам нужен weekly trigger вместо ежедневного запуска, если вы хотите, чтобы выполнить задачу по выбранным дням в неделю. Значение DaysOfWeek property указывает дни как битовая маска в целочисленном значении.

$objScheduledTask_Triggers = $objScheduledTask_TaskDefinition.Triggers 
$objScheduledTask_Trigger = $objScheduledTask_Triggers.Create(3) 
$objScheduledTask_Trigger.StartBoundary = '2011-10-01T04:00:00' 
$objScheduledTask_Trigger.WeeksInterval = 1 # run every week 
$objScheduledTask_Trigger.DaysOfWeek = 126 # Mo-Sa 
$objScheduledTask_Trigger.Id = 'DailyTriggerId' 
$objScheduledTask_Trigger.Enabled = $true 
+0

Извините, я думал, что нажал на него! : D –