1
我試圖在TaskScheduler
模塊之前使用PowerShell創建一些計劃任務,這不是一個選項,因爲這將用於在外部客戶端計算機上運行進程。因此我不能使用cmd,因爲我需要每次都指定憑據。創建每週運行6天的計劃任務
我已經鑽研了一下comobject,但是我不太明白這一點。 如果我能夠找出觸發器,我會非常樂意使用它,基本上我需要它每天運行6天(不包括週日),每天在特定時間運行一次。
我認爲我的行爲和觀點已經被解決了,但這是我在理解中掙扎的觸發器。
這是我從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
}
對不起,我以爲我點了它! :d –