Tạo một tác vụ theo lịch trình trong Windows sẽ chạy trong khoảng thời gian vô tận


16

Tôi dường như hơi bối rối bởi các Task Schedulercài đặt kích hoạt. (Tôi đang dùng Windows Server 2008 Web)

Tôi muốn tạo một tác vụ sẽ chạy cứ sau 5 phút, cho dù người dùng có đăng nhập hay không và điều đó sẽ quay lại lịch trình của nó khi máy tính khởi động lại.

Và vì vậy, tôi đã thiết lập tất cả theo yêu cầu, nhưng lưu ý rằng có hai tùy chọn cho Trình kích hoạt của tôi:

  1. Bắt đầu nhiệm vụ At Startup(và sau đó sử dụng Advanced Settingsđể lặp lại cứ sau năm phút vô thời hạn)
  2. Bắt đầu nhiệm vụ At task creation/modification(và sau đó sử dụng Advanced Settingsđể lặp lại cứ sau năm phút vô thời hạn)

Nếu tôi chọn (1), nó sẽ không chạy ngay lập tức. Tôi sẽ phải khởi động lại, điều mà tôi không muốn làm.

Nếu tôi chọn (2), nó sẽ chạy ngay lập tức, nhưng sẽ không có sau lần khởi động lại tiếp theo.

Nếu tôi tạo các kích hoạt cho cả (1) và (2), nó có thể hoạt động, nhưng sau đó khi tôi sửa đổi nhiệm vụ trong tương lai, liệu có hai trường hợp của nó chạy khi cả hai kích hoạt được kích hoạt không? Hay nó sẽ ghi đè lên các khoảng thời gian 5 phút đã bắt đầu kể từ khi khởi động? Tôi không muốn xảy ra.

Có ý kiến ​​gì không?

Câu trả lời:


25

Tôi sẽ thử nó như thế này:

  1. Thêm trình kích hoạt: nhập mô tả hình ảnh ở đây Đảm bảo đặt ngày hiện tại và 00:00:00 làm thời gian bắt đầu
  2. Đảm bảo tác vụ được chạy càng sớm càng tốt nếu bắt đầu bị bỏ lỡ: nhập mô tả hình ảnh ở đây

5
Cảm ơn. "Chạy càng sớm càng tốt nếu bắt đầu bị bỏ lỡ" là chìa khóa.
Ross

2

Đây là cách tạo tác vụ theo lịch trình như vậy bằng PowerShell:

$executable = "foo.exe"
$taskName = "My Task"
$action = New-ScheduledTaskAction -execute $executable
$trigger = New-ScheduledTaskTrigger -Once -At (Get-Date).Date
$settings = New-ScheduledTaskSettingsSet -StartWhenAvailable
Register-ScheduledTask -TaskName $taskName -Trigger $trigger -Action $action -Setting $settings -description $description -User "NT AUTHORITY\SYSTEM" -RunLevel 1
$trigger.RepetitionInterval = (New-TimeSpan -Minutes 5)
$trigger.RepetitionDuration = (New-TimeSpan -Days 1000)
Set-ScheduledTask $taskName -Trigger $trigger

Hullo Tôi nghĩ rằng điều này chỉ hoạt động nếu Thời lượng là vô hạn - ([timespan] :: MaxValue)
Michael
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.