Cách tạo tác vụ theo lịch trình bằng PowerShell trên Windows 10

Với các lệnh PowerShell, bạn có thể tạo, sửa đổi và xóa các tác vụ đã lên lịch trên Windows 10. Trong hướng dẫn này, tôi sẽ hướng dẫn bạn cách thực hiện.
Trên Windows 10, Task Scheduler là một công cụ hữu ích đã có từ nhiều năm nay và cung cấp giao diện đồ họa thân thiện để tạo các thói quen tự động. Khi sử dụng công cụ này, bạn có thể tự động hóa các tác vụ để khởi chạy ứng dụng, chạy các lệnh cụ thể hoặc thực thi các tập lệnh theo lịch trình cụ thể hoặc khi một điều kiện được đáp ứng.
Mặc dù ứng dụng Task Scheduler cung cấp môi trường thuận tiện nhất để quản lý các tác vụ trên Windows 10, nhưng bạn cũng có thể sử dụng PowerShell để lên lịch, sửa đổi và xóa các tác vụ, điều này có thể hữu ích khi bạn cần hợp lý hóa quy trình tạo tác vụ trên nhiều thiết bị hoặc khi bạn cần tạo một tập lệnh PowerShell cần tương tác với bảng điều khiển.
Trong hướng dẫn thực hiện này, tôi sẽ hướng dẫn bạn các bước cơ bản để bắt đầu quản lý các tác vụ đã lên lịch bằng lệnh PowerShell trên Windows 10.
Download: https://apps.microsoft.com/detail/9mz1snwt0n5d?hl=vi-VN&gl=VN
Cách tạo tác vụ theo lịch trình bằng PowerShell
Để tạo tác vụ theo lịch trình bằng PowerShell trên Windows 10, hãy làm theo các bước sau:
1. Mở Start.
2. Tìm kiếm PowerShell, nhấp chuột phải vào kết quả trên cùng và chọn tùy chọn Run as administrator.
3. Nhập lệnh sau để tạo biến lưu trữ hành động của tác vụ và nhấn Enter: $action = New-ScheduledTaskAction -Execute ‘PROGRAM’
Trong lệnh, hãy đảm bảo thay thế “PROGRAM” bằng tên chương trình bạn muốn khởi động. “$action” là một biến và tên không quan trọng miễn là bạn giữ cho nó ngắn gọn, đơn giản và mô tả được. Ví dụ, lệnh này yêu cầu Task Scheduler khởi động ứng dụng Notepad: $action = New-ScheduledTaskAction -Execute ‘notepad.exe’
- Mẹo nhanh: Nếu bạn đang cố gắng lên lịch cho một tập lệnh Command Prompt hoặc PowerShell, bạn sẽ sử dụng tên chương trình cho tùy chọn “-Execute” và tùy chọn “-Argument” để chỉ định đường dẫn của tập lệnh. Ví dụ: $action = New-ScheduledTaskAction -Execute ‘cmd.exe’ -Argument C:\scripts\myscript.bat
4. Nhập lệnh sau để tạo biến lưu trữ thông tin lịch trình cho tác vụ và nhấn Enter: $trigger = New-ScheduledTaskTrigger -SETTING -At TIME
Trong lệnh, hãy đảm bảo thay thế “SETTING” và “TIME” bằng thông tin chi tiết về thời điểm bạn muốn chạy tác vụ. $trigger là một biến và tên của biến không quan trọng. Ví dụ, ví dụ này yêu cầu Task Scheduler chạy tác vụ hàng ngày lúc 11 giờ sáng: $trigger = New-ScheduledTaskTrigger -Daily -At 11am
- Lưu ý nhanh: Đối với “SETTING”, bạn có thể sử dụng -Once, -Daily, -Weekly hoặc -Monthly. Và đối với cài đặt thời gian, bạn có thể sử dụng định dạng 12 hoặc 24 giờ. Nếu bạn đang sử dụng tùy chọn “Weekly”, thì bạn cũng cung cấp thông tin “-DaysInterval” hoặc “-DaysOfWeek”, theo sau là thông tin tương ứng. Ví dụ, với “-DaysOfWeek”, bạn có thể sử dụng Sunday, Monday, Tuesday, Wednesday, Thursday, Friday hoặc Saturday (ví dụ: -DaysOfWeek Monday để chạy tác vụ vào mỗi thứ Hai), và “-DaysInterval”, bạn sẽ cung cấp khoảng thời gian dưới dạng số (ví dụ: -DaysInterval 2 để chạy tác vụ sau mỗi hai ngày).
Nhập lệnh sau để tạo tác vụ theo lịch trình bằng các biến bạn đã chỉ định ở các bước trước đó và nhấn Enter: Register-ScheduledTask -Action $action -Trigger $trigger -TaskPath “TASK-FOLDER” -TaskName “TASK-NAME” -Description “OPTIONAL-DESCRIPTION-TEXT”
Trong lệnh, hãy đảm bảo cập nhật “TASK-NAME” bằng tên thực của tác vụ và “OPTIONAL-DESCRIPTION-TEXT” bằng mô tả của tác vụ. Tùy chọn thư mục “-TaskPath” không phải là bắt buộc, nhưng nó sẽ giúp tách biệt các tác vụ. Nếu bạn không chỉ định tùy chọn bằng đường dẫn, tác vụ sẽ được tạo bên trong thư mục Task Scheduler Library. Ví dụ: lệnh này tạo tác vụ theo lịch trình với tên “testTask”, mô tả tùy chỉnh và với các thiết lập được chỉ định ở bước 3 và 4: Register-ScheduledTask -Action $action -Trigger $trigger -TaskPath “MyTasks” -TaskName “testTask” -Description “Tác vụ này mở trình soạn thảo Notepad”
Sau khi bạn hoàn tất các bước, tác vụ sẽ được tạo và lên lịch theo cấu hình của bạn.
Cách thay đổi tác vụ đã lên lịch bằng PowerShell
Để sửa đổi tác vụ đã lên lịch bằng lệnh PowerShell, hãy sử dụng các bước sau:
1. Mở Start.
2. Tìm kiếm PowerShell, nhấp chuột phải vào kết quả trên cùng và chọn tùy chọn Run as administrator.
3. Nhập lệnh sau để tạo biến lưu trữ các thay đổi lịch trình và nhấn Enter: $trigger = New-ScheduledTaskTrigger -SETTING -At TIME
Trong lệnh, hãy đảm bảo thay thế “SETTING” và “TIME” bằng thông tin mới được cập nhật về thời điểm chạy tác vụ. Ví dụ, lệnh này cập nhật tác vụ bằng lịch trình kích hoạt mới: $trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Monday -At 2pm
4. (Tùy chọn) Nhập lệnh sau để tạo biến lưu trữ các thay đổi hành động mới và nhấn Enter: $action = New-ScheduledTaskAction -Execute ‘PROGRAM
Trong lệnh, hãy đảm bảo thay thế “PROGRAM” bằng tên của chương trình mới mà bạn muốn bắt đầu. Ví dụ, lệnh này yêu cầu Task Scheduler thay đổi chương trình bắt đầu thành WordPad: $action = New-ScheduledTaskAction -Execute ‘C:\Program Files\Windows NT\Accessories\wordpad.exe’
5. Nhập lệnh sau để thay đổi cài đặt của tác vụ đã lên lịch và nhấn Enter: Set-ScheduledTask -Trigger $trigger -Action $action -TaskPath “TASK-FOLDER” -TaskName “TASK-NAME”
Trong lệnh, thay thế “TASK-NAME” bằng tên của tác vụ bạn muốn cập nhật. Nếu bạn đang lưu trữ tác vụ trong một thư mục cụ thể, hãy đảm bảo cập nhật “TASK-FOLDER” bằng tên của thư mục lưu trữ tác vụ. Nếu không, hãy xóa tùy chọn -TaskPath “TASK-FOLDER” khỏi lệnh. Ví dụ, lệnh này cập nhật tác vụ testTask bằng các thiết lập hành động và kích hoạt mới: Set-ScheduledTask -Trigger $trigger -Action $action -TaskPath “MyTasks” -TaskName “testTask”
Ví dụ trên cho thấy các bước để cập nhật cài đặt “triggers” và “actions”, nhưng bạn cũng có thể chỉ cập nhật một, ba hoặc nhiều cài đặt. Bạn chỉ cần tạo biến và sau đó áp dụng nó bằng lệnh Set-ScheduledTask. Ví dụ, sử dụng các bước trên làm tài liệu tham khảo, bạn có thể bỏ qua step 4 và sau đó sử dụng lệnh này để chỉ cập nhật lịch trình: Set-ScheduledTask -Trigger $trigger -TaskName “testTask”
Cách xóa tác vụ đã lên lịch bằng PowerShell
Để xóa tác vụ đã lên lịch khỏi Task Scheduler bằng PowerShell, hãy làm theo các bước sau:
1. Mở Start.
2. Tìm kiếm PowerShell, nhấp chuột phải vào kết quả trên cùng và chọn tùy chọn Run as administrator.
3. (Tùy chọn) Nhập lệnh sau để xác nhận tác vụ tồn tại và nhấn Enter: Get-ScheduledTask -TaskName “TASK-NAME”
Trong lệnh, hãy đảm bảo thay thế “TASK-NAME” bằng tên của tác vụ. Ví dụ, lệnh này hiển thị tác vụ testTask: Get-ScheduledTask -TaskName “testTask”
Trong lệnh, hãy đảm bảo thay thế “TASK-NAME” bằng tên của tác vụ. Tùy chọn “-Confirm:$false” xóa tác vụ mà không yêu cầu xác nhận. Ví dụ, lệnh này xóa tác vụ testTask: Unregister-ScheduledTask -TaskName “testTask” -Confirm:$false
5. (Tùy chọn) Nhập lệnh sau để xác nhận tác vụ đã bị xóa và nhấn Enter: Get-ScheduledTask -TaskName “TASK-NAME”
Trong lệnh, hãy đảm bảo thay thế “TASK-NAME” bằng tên của tác vụ. Ví dụ, lệnh này để xác nhận tác vụ testTask không còn khả dụng nữa: Get-ScheduledTask -TaskName “testTask”
Sau khi hoàn tất các bước, nếu bạn nhận được lỗi cho biết không có tác vụ nào có tên cụ thể đó, điều đó có nghĩa là tác vụ đã bị xóa.
Hướng dẫn này tập trung vào các bước cơ bản để bắt đầu quản lý các tác vụ đã lên lịch bằng PowerShell. Tuy nhiên, bằng cách sử dụng các lệnh PowerShell, bạn có thể quản lý nhiều cài đặt khác. Bạn có thể bắt đầu và dừng tác vụ, xem thông tin tác vụ và nhiều hơn nữa bằng cách sử dụng nhiều mô-đun có sẵn.
Ngoài việc sử dụng PowerShell, bạn cũng có thể tạo, sửa đổi và xóa tác vụ bằng Command Prompt.