簡體   English   中英

Powershell-每月計划任務觸發器

[英]Powershell - Monthly Scheduled Task Trigger

我目前正在通過Powershell自動執行計划任務的創建,並且正在使用New-ScheduledTaskActionNew-ScheduledTaskTriggerRegister-ScheduledTask命令。 現在,我有一些工作需要在以下條件下運行:

  • 每個星期五運行一次
  • 每月1號運行一次
  • 每個月的第10天運行一次

盡管New-ScheduledTaskTrigger命令的technet文檔指定了DailyWeekly時間跨度參數,但我看不到Monthly一個,這對於定義上述運行時間至關重要。

在使用Powershell的幾年中,我無法想到可以通過標准UI界面執行某些操作的實例,而我無法使用其中一個可用命令來完成該任務。

這只是在這里不可用,還是我缺少了什么?

更新#1

我只是偶然發現了這個SuperUser問題 ,看起來確實很有前途,但是引用了PSV3而不是PSV4-會給它一個機會並進行報告。

正如我在原始帖子中所說,上面的SuperUser問題看起來很有希望,但最終不適用於PSV4,並且帖子中給出的示例基本上是幾乎沒有上下文的復制/粘貼作業。

我意識到我可以利用Powershell腳本中的Schtasks.exe來處理每月的匯總,並且設置起來相當容易,盡管有些乏味:

# set the trigger depending on time, span, and day
$runSpan = $task.SpanToRun;

if ($runSpan.Equals("Daily"))
{            
    $trigger = New-ScheduledTaskTrigger -Daily -At $task.TimeToRun
    Register-ScheduledTask -Action $action -Trigger $trigger -TaskName $task.TaskName -User $Username -Password $Password -Description $task.Description       
}

if ($runSpan.Equals("Weekly"))
{            
    $trigger = New-ScheduledTaskTrigger -Weekly -At $task.TimeToRun -DaysOfWeek $task.DayToRun
    Register-ScheduledTask -Action $action -Trigger $trigger -TaskName $task.TaskName -User $Username -Password $Password -Description $task.Description
}        

#  script out SchTasks magic to create the monthly tasks
if ($runSpan.Equals("Monthly"))
{
    $taskParams = @("/Create",
                "/TN", $task.TaskName, 
                "/SC", "monthly", 
                "/D", $task.DayToRun, 
                "/ST", $task.TimeToRun, 
                "/TR", $filePath, 
                "/F", #force
                "/RU", $Username,
                "/RP", $Password);

    # supply the command arguments and execute  
    #schtasks.exe $taskParams
     schtasks.exe @taskParams
}

我正在使用一個腳本內類來跟蹤所有任務屬性( $task.TimeToRun$task.DayToRun等),遍歷所有任務的屬性,將Powershell實現應用於每日和每周任務,然后切換到SchTasks.exe獲取每月跨度。

我要注意的一件事是,乍一看,我認為可以使用UP參數來設置運行任務的用戶上下文,但事實並非如此。 這指定了Schtasks.exe運行的憑據-為了設置任務的用戶上下文,必須使用RURP

除了上面的鏈接,這兩個也非常有幫助:

http://coding.pstodulka.com/2015/08/02/programmatically-scheduling-powershell-scripts-in-task-scheduler/

https://msdn.microsoft.com/zh-CN/library/windows/desktop/bb736357(v=vs.85).aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM