Đây là cách tiếp cận được Microsoft ghi lại để giải quyết vấn đề này.
Chú thích: Bạn phải sử dụng các tùy chọn cài đặt được cung cấp trong các hộp thả xuống, mặc dù GUI có vẻ là các trường dạng tự do, nhưng chúng không phải.
Xem:
Định cấu hình tham số tác vụ theo lịch trình nâng cao bằng PowerShell
Các thông số bị thiếu
Tuyệt vời, vì vậy bây giờ chúng ta có một tập lệnh, một tác vụ theo lịch trình chạy tập lệnh và nó sẽ chạy mỗi khi máy chủ hoặc máy trạm được khởi động. Nhưng chúng tôi đã không đáp ứng một trong những yêu cầu; nhiệm vụ cũng phải lặp lại cứ sau 10 phút trong 1 ngày. Nếu bạn quay lại và cố gắng thêm khoảng thời gian lặp lại hoặc thời lượng lặp lại, bạn sẽ nhận thấy rằng đó không phải là một tùy chọn cho tham số -AtStartup:
Thông qua GUI, các tham số tác vụ theo lịch trình có sẵn:
Nhưng chúng không có sẵn thông qua lệnh ghép ngắn PowerShell New-Lên lịchTaskTrigger nếu bạn chọn tham số -AtStartup. Chúng có sẵn thông qua tham số -Once nhưng điều đó sẽ không đáp ứng yêu cầu. Giải pháp là trực tiếp sửa đổi các thuộc tính của tác vụ bằng cách sử dụng lược đồ XML của nó. Điều này thoạt nghe có vẻ phức tạp nhưng thực tế nó rất dễ dàng và sẽ cho phép bạn sửa đổi thực tế mọi tham số của tác vụ theo lịch trình.
Bước 1 - Nhận nhiệm vụ theo lịch trình. Bước đầu tiên là nhận tác vụ theo lịch trình mà bạn vừa tạo và lưu trữ nó trong một đối tượng.
$Task = Get-ScheduledTask -TaskName "SampleScheduledTask"
Bước 2 - Cập nhật thuộc tính cụ thể của tác vụ mà bạn muốn sửa đổi. Trong ví dụ này, chúng tôi muốn thêm thời lượng lặp lại và khoảng thời gian lặp lại.
$Task.Triggers.Repetition.Duration = "P1D"
$Task.Triggers.Repetition.Interval = "PT10M"
Có lẽ bạn đang tự hỏi làm thế nào tôi biết P1D sẽ có thời lượng 1 ngày và làm thế nào tôi biết PT10M sẽ bằng một khoảng thời gian lặp lại là 10 phút vì các giá trị ngày / giờ hoặc thời gian điển hình mà bạn có thể sử dụng để làm việc. Để có được các giá trị đó, tôi chỉ cần cấu hình thời lượng và khoảng thời gian mà tôi muốn thông qua GUI sau đó xem kết quả thông qua Powershell bằng lệnh sau:
$Task.Triggers.Repetition | fl *
Bước 3 - Lưu cấu hình mới vào tác vụ theo lịch trình. Hãy nhớ rằng, bạn phải nhập lại thông tin đăng nhập cho tác vụ tại đây nếu không thao tác sẽ thất bại.
$Task | Set-ScheduledTask -User "NT AUTHORITY\SYSTEM"