Cách lên lịch tác vụ với PowerShell để chạy mỗi giờ, từ thứ Hai đến thứ Sáu, từ 8 giờ sáng đến 6 giờ chiều


1

Tôi cần lên lịch để thực hiện một nhiệm vụ:

  • Thứ Hai đến thứ Sáu
  • Mỗi giờ từ 8 giờ sáng đến 6 giờ chiều

Tôi có thể làm điều này từ GUI lập lịch tác vụ thông thường nhưng vì tôi đang sử dụng tài khoản dịch vụ được quản lý nhóm để chạy tác vụ này, tôi cần thực hiện việc này từ powershell.

Tôi đã thử sử dụng -RepetitionDuration-RepetitionInterval các tham số trong New-ScheduledTaskTrigger cmdlet nhưng để sử dụng nó, tôi cần phải có -once parameter?

Xin tư vấn!

enter image description here


Phiên bản nào của PowerShell? Bạn đã xem xét việc nhập tệp .xml tác vụ theo lịch trình đã được xác định theo lịch trình chưa?
music2myear

Câu trả lời:


0

Đâ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"
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.