Máy Tính

Cách Tự Động Hóa Windows Update Trên Windows 11 Bằng PowerShell, Tránh Gián Đoạn

Menu File trong Notepad hiển thị tùy chọn "Save As" để lưu script PowerShell

Windows Update là một trong những tính năng gây tranh cãi nhất trên Windows 11. Các bản cập nhật bắt buộc và khởi động lại đột ngột có thể xảy ra vào những thời điểm tồi tệ nhất, gây ra không ít sự khó chịu cho người dùng. Tuy nhiên, không thể phủ nhận đây là một thành phần thiết yếu giúp giữ cho hệ thống của bạn an toàn và được bảo vệ khỏi các lỗ hổng bảo mật mới nhất.

Nếu bạn không muốn việc cập nhật làm gián đoạn công việc hoặc trải nghiệm giải trí, có một giải pháp hiệu quả để khắc phục vấn đề này. PowerShell, công cụ dòng lệnh mạnh mẽ của Microsoft, cung cấp cho bạn các khả năng để tự động hóa quy trình Windows Update, giúp mọi thứ trở nên ít phiền phức hơn rất nhiều. Bài viết này của congnghemoi.net sẽ hướng dẫn bạn chi tiết cách tận dụng PowerShell và Task Scheduler để kiểm soát hoàn toàn việc cập nhật Windows 11, đảm bảo máy tính của bạn luôn được bảo mật mà không ảnh hưởng đến năng suất làm việc.

Tất cả các bước liên quan đến PowerShell yêu cầu phải được chạy với quyền quản trị viên (administrator) để đảm bảo hoạt động chính xác.

Thiết lập môi trường để tự động hóa Windows Update

Để tự động hóa quá trình cập nhật Windows 11, bạn chỉ cần phiên bản Windows PowerShell mới nhất, vốn đã được tích hợp sẵn trong các phiên bản Windows hiện đại, cùng với một tài khoản người dùng có quyền quản trị. Với các yêu cầu cơ bản này, bước tiếp theo là cài đặt module PSWindowsUpdate, một công cụ mạnh mẽ cho phép quản lý cập nhật dễ dàng hơn. Module này cung cấp nhiều lệnh hữu ích để kiểm soát Windows Update, nhưng trong hướng dẫn này, chúng ta sẽ tập trung vào việc tự động hóa toàn bộ quy trình, giúp bạn thao tác một cách tương đối đơn giản.

Cài đặt Module PSWindowsUpdate

Để cài đặt module PSWindowsUpdate, bạn chỉ cần mở PowerShell với quyền quản trị viên và nhập lệnh sau:

Install-Module PSWindowsUpdate

Nếu một lời nhắc xuất hiện yêu cầu bạn chấp nhận cài đặt nhà cung cấp NuGet (điều này có thể không xảy ra nếu bạn đã có phiên bản mới nhất), hãy nhấn Y. Sau đó, khi được hỏi để xác nhận cài đặt module, hãy nhấn A để đồng ý Yes to all.

Nhập Module PSWindowsUpdate

Sau khi cài đặt xong, bạn cần nhập module này vào phiên làm việc hiện tại của PowerShell bằng lệnh:

Import-Module PSWindowsUpdate

Nếu có thông báo nhắc nhở, hãy nhấn A để luôn tin cậy module này. Đây là bước cần thiết để đảm bảo quá trình tự động hóa hoạt động suôn sẻ sau này.

Xử lý lỗi “Execution Policy” (Nếu cần)

Trong trường hợp bước nhập module không thành công, bạn có thể cần điều chỉnh chính sách thực thi (execution policy) trên PC của mình. Hãy chạy lệnh sau:

Set-ExecutionPolicy Unrestricted

Sau khi chạy lệnh này, hãy thử lại lệnh Import-Module PSWindowsUpdate. Module sẽ được nhập thành công. Tuy nhiên, cần lưu ý rằng việc sử dụng chính sách Unrestricted có thể tiềm ẩn rủi ro về bảo mật, vì nó cho phép chạy bất kỳ script PowerShell nào mà không cần xác minh. Hãy cân nhắc và chỉ sử dụng khi thực sự cần thiết, hoặc sau khi hoàn tất thiết lập, bạn có thể đặt lại chính sách này thành một mức độ an toàn hơn.

Tự động hóa Windows Update với PowerShell và Task Scheduler

Sau khi module PSWindowsUpdate đã được cài đặt và thiết lập thành công, bước tiếp theo là tạo một script PowerShell để kiểm tra và cài đặt các bản cập nhật khi chúng khả dụng. May mắn thay, cộng đồng đã phát triển sẵn các script tiện ích, giúp bạn có thể lựa chọn giữa việc tải về hoặc tự tạo script theo hướng dẫn dưới đây.

Tạo Script PowerShell Tự Động Cập Nhật

Script này về cơ bản sẽ tự động quét tất cả các bản cập nhật Windows có sẵn, và nếu tìm thấy, nó sẽ cài đặt chúng, đồng thời khởi động lại PC nếu cần. Điều này có nghĩa là bạn nên lên lịch chạy script vào thời điểm mà bạn không bận tâm đến việc máy tính sẽ khởi động lại. Script cũng tự động ghi lại tất cả các đầu ra vào một file log với thời gian và ngày hiện tại, giúp bạn dễ dàng theo dõi lịch sử cập nhật trên PC của mình.

Bạn có thể tải script PowerShell đã có sẵn tại đây, hoặc làm theo các bước dưới đây để tự tạo script:

  1. Đầu tiên, hãy tạo một thư mục tên là Scripts ở ổ đĩa gốc C: của bạn. Sau đó, bên trong thư mục mới này, hãy tạo thêm một thư mục Logs. Điều này sẽ giúp bạn dễ dàng xem các file log của script sau này. Hoặc bạn có thể chỉnh sửa script trong Notepad để tạo log ở một thư mục khác đã tồn tại. Tuy nhiên, hãy nhớ rằng script không thể ghi vào một thư mục chưa được tạo.
  2. Mở ứng dụng Notepad.
  3. Sao chép toàn bộ khối văn bản từ trang này và dán vào Notepad.
  4. Nhấp vào File > Save As.
    Menu File trong Notepad hiển thị tùy chọn "Save As" để lưu script PowerShellMenu File trong Notepad hiển thị tùy chọn "Save As" để lưu script PowerShell
  5. Điều hướng đến thư mục bạn muốn lưu file (ví dụ, C:UsersTên_Người_DùngDocuments hoặc thư mục C:Scripts bạn đã tạo).
  6. Thay đổi tùy chọn Save as type thành All files.
  7. Chọn bất kỳ tên nào cho file của bạn và thêm đuôi .ps1 vào cuối. Ví dụ: RunWindowsUpdate.ps1.
    Hộp thoại Save As trong Notepad với loại file "All Files" và tên file .ps1 cho script tự động cập nhật WindowsHộp thoại Save As trong Notepad với loại file "All Files" và tên file .ps1 cho script tự động cập nhật Windows
  8. Nhấp Save.

Tự động chạy Script với Task Scheduler

Bước tiếp theo là làm cho script chạy tự động, nhưng trước đó, chúng ta cần đảm bảo rằng nó sẽ không yêu cầu thêm quyền khi chạy. Theo mặc định, các script PowerShell thường bị chặn không cho chạy tự động, vì vậy bạn phải bỏ chặn file thủ công. Để làm điều này, hãy sử dụng lệnh Unblock-File trong PowerShell, theo sau là đường dẫn đến script PowerShell mà chúng ta vừa tạo. Ví dụ:

Unblock-File "C:UsersjoaocDocumentsRunWindowsUpdate.ps1"

Lệnh này sẽ cho phép script tự động hóa chạy không bị hạn chế, bạn sẽ không cần phải phê duyệt hoặc thực hiện bất kỳ thao tác thủ công nào.

Tiếp theo, bạn có thể tạo tác vụ tự động hóa bằng cách sử dụng một script PowerShell khác, hoặc sử dụng công cụ Task Scheduler. Chúng tôi sẽ sử dụng phương pháp sau vì nó dễ dàng minh họa và thực hiện hơn cho người dùng phổ thông.

Các bước tạo tác vụ cơ bản trong Task Scheduler

  1. Mở Start menu và gõ Task Scheduler vào thanh tìm kiếm. Chọn tùy chọn đầu tiên.

  2. Sử dụng menu bên phải cửa sổ để chọn Create Basic Task (Tạo tác vụ cơ bản). Nếu bạn muốn sắp xếp các tác vụ của mình tốt hơn, bạn có thể tạo một thư mục mới trước đó.
    Giao diện Task Scheduler hiển thị nút "Create Basic Task" được đánh dấu để tạo tác vụ tự động cập nhật WindowsGiao diện Task Scheduler hiển thị nút "Create Basic Task" được đánh dấu để tạo tác vụ tự động cập nhật Windows

  3. Đặt tên cho tác vụ là Automatic Windows updates (hoặc bất kỳ tên nào bạn thích) và thêm mô tả nếu muốn. Nhấp Next.

  4. Trong phần Trigger (Kích hoạt), chọn tần suất bạn muốn script chạy. Tùy chọn tốt nhất ở đây có lẽ là đặt thành Daily (Hàng ngày) để đảm bảo bạn sẽ cài đặt mọi bản cập nhật trước khi chúng có thể làm phiền bạn. Nhấp Next.

  5. Trên trang tiếp theo, chọn thời điểm tác vụ nên chạy lần đầu tiên. Tại đây, hãy đảm bảo bạn chọn thời gian mà bạn không cần sử dụng máy tính của mình. Ví dụ, 3AM sẽ cho phép tác vụ chạy qua đêm. Nhưng bạn cũng có thể tắt máy tính vào thời điểm đó, vì vậy hãy đảm bảo chọn thời điểm phù hợp với bạn.
    Hộp thoại tạo tác vụ mới trong Task Scheduler, cài đặt ngày giờ chạy tác vụ tự động cập nhật Windows lần đầuHộp thoại tạo tác vụ mới trong Task Scheduler, cài đặt ngày giờ chạy tác vụ tự động cập nhật Windows lần đầu

    Bạn cũng có thể chọn số ngày giữa mỗi lần chạy. Mặc định là 1. Nhấp Next.

  6. Trong tab Action (Hành động), chọn Start a program (Khởi chạy chương trình) và nhấp Next.

  7. Trong trang tiếp theo, dưới Program/Script (Chương trình/Script), nhập PowerShell.exe.

  8. Bên cạnh Add arguments (optional) (Thêm đối số (tùy chọn)), nhập lệnh sau (thay thế đường dẫn file bằng đường dẫn bạn đang sử dụng trên máy của mình):

    -NoProfile -WindowStyle Hidden -File "C:UsersjoaocDocumentsRunWindowsUpdate.ps1"
  9. Nhấp Next và sau đó Finish.

Tùy chỉnh nâng cao cho tác vụ

  1. Sau khi tạo tác vụ, hãy vào Task Scheduler Library (Thư viện Task Scheduler) ở bên trái cửa sổ.
  2. Nhấp chuột phải vào tác vụ bạn đã tạo và chọn Properties (Thuộc tính).
    Cửa sổ Properties của tác vụ tự động cập nhật Windows trong Task SchedulerCửa sổ Properties của tác vụ tự động cập nhật Windows trong Task Scheduler
  3. Nhấp vào Change User or Group… (Thay đổi Người dùng hoặc Nhóm…).
  4. Nhập System vào hộp văn bản và sau đó nhấp vào Check Names (Kiểm tra Tên).
    Hộp thoại "Select User or Group" trong Task Scheduler, cho phép chọn tài khoản System để chạy tác vụ tự động cập nhật WindowsHộp thoại "Select User or Group" trong Task Scheduler, cho phép chọn tài khoản System để chạy tác vụ tự động cập nhật Windows
  5. Nhấp OK.
  6. Đánh dấu vào ô có nhãn Run with highest privileges (Chạy với quyền cao nhất).
    Cửa sổ Properties của tác vụ tự động cập nhật Windows, tùy chọn "Run with highest privileges" được chọn để đảm bảo quyền quản trịCửa sổ Properties của tác vụ tự động cập nhật Windows, tùy chọn "Run with highest privileges" được chọn để đảm bảo quyền quản trị
  7. (Tùy chọn) Bạn cũng có thể muốn vào tab Conditions (Điều kiện) và bỏ chọn ô có nội dung “Start the task only if the computer is on AC power” (Chỉ khởi chạy tác vụ nếu máy tính đang sử dụng nguồn điện AC). Điều này sẽ cho phép tác vụ chạy ngay cả khi máy tính xách tay không cắm sạc.
  8. Nhấp OK để hoàn tất cài đặt.

Script giờ đây sẽ chạy tự động hàng ngày vào thời gian bạn đã đặt (trừ khi bạn chọn lịch lặp lại khác). Ngoài ra, nếu bạn muốn sử dụng PowerShell để thực hiện điều này, bạn có thể sử dụng một script để tạo tác vụ theo lịch. Để làm vậy, bạn sẽ sử dụng Notepad một lần nữa như đã làm ở trên, nhưng sau đó sao chép văn bản ví dụ này thay thế. Bạn có thể sửa đổi các biến thời gian để phù hợp với nhu cầu của mình. Thực hiện các bước tương tự để tạo file PS1 và sau đó chạy nó thủ công (bạn chỉ cần chạy một lần). Cũng đừng quên thay đổi đường dẫn đến script để khớp với nơi bạn đã lưu file PS1 của mình.

Khám phá các tùy chỉnh và mở rộng cho Script cập nhật

Script cơ bản ở trên khá đơn giản, nó sẽ kiểm tra và cài đặt các bản cập nhật Windows, nhưng chỉ vậy thôi. Nó không có logic để xử lý các lỗi tiềm ẩn và sẽ không phát hiện các bản cập nhật không phải của Windows, chẳng hạn. Có một số thay đổi bạn có thể thực hiện để khắc phục một số hạn chế này nếu cần.

Cập nhật các sản phẩm Microsoft khác

Nếu bạn muốn bao gồm các bản cập nhật phần mềm Microsoft khác khi cài đặt cập nhật, bạn có thể thêm đối số -MicrosoftUpdate bên cạnh -Install-WindowsUpdate trong script chúng ta đã tạo. Về cơ bản, dòng lệnh mới sẽ trông như sau:

Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -AutoReboot -Verbose | Tee-Object -FilePath $LogPath -Append

Giới hạn băng thông tải xuống

Nếu bạn đang ở trong một tổ chức lớn và chạy script này trên nhiều PC, bạn có thể muốn giới hạn băng thông cho mỗi máy. Bạn có thể thêm đối số -ThrottleDownload để thực hiện điều này. Tương tự, nếu bạn sửa đổi script cơ bản, dòng mới sẽ trông như sau (ví dụ):

Install-WindowsUpdate -ThrottleDownload 5Mbps -AcceptAll -AutoReboot -Verbose | Tee-Object -FilePath $LogPath -Append

Tự động cập nhật cho máy tính từ xa (PowerShell Remoting)

Cũng có thể sử dụng script này trên các máy từ xa bằng PowerShell Remoting. Trong trường hợp này, trước tiên bạn phải bật PowerShell Remoting bằng lệnh Enable-PSRemoting -Force, sau đó sửa đổi script của mình để chạy trên các máy mong muốn. Bạn có thể tìm thấy một script ví dụ cho trường hợp này tại đây (do Paul Amman cung cấp trong bài viết Medium này). Tuy nhiên, bạn sẽ phải sửa đổi nó với các tên máy tính thích hợp mà bạn muốn nhắm mục tiêu.

Kiểm tra và xử lý lỗi

Nếu có bất kỳ lỗi nào với các bản cập nhật, bạn có thể sử dụng Event Viewer để xem điều gì đã xảy ra hoặc duyệt đến vị trí lưu trữ các file log của bạn để xem thông tin được hiển thị ở đó.

Tự động hóa Windows Update, nâng cao trải nghiệm

Windows Update đôi khi có thể gây khó chịu, nhưng với script PowerShell và Task Scheduler, việc tự động hóa cập nhật trở nên dễ dàng hơn rất nhiều. Bạn sẽ không còn phải lo lắng về việc máy tính tự ý cài đặt cập nhật và khởi động lại vào những thời điểm không mong muốn. Mọi thứ sẽ diễn ra theo một lịch trình cố định, giúp bạn chủ động hoàn toàn trong việc quản lý hệ thống. Ngay cả khi bạn không phải là một chuyên gia kỹ thuật, các bước hướng dẫn này cũng đủ đơn giản để làm theo, vì vậy đây là một giải pháp đáng để thử.

Hãy chia sẻ trải nghiệm của bạn khi tự động hóa Windows Update bằng PowerShell và Task Scheduler trong phần bình luận bên dưới, hoặc nếu bạn có bất kỳ câu hỏi nào, đừng ngần ngại đặt ra!

Related posts

SPSS: Giải Pháp Phân Tích Dữ Liệu Mạnh Mẽ và Trực Quan cho Người Không Chuyên Mã Hóa

Administrator

Hiệu Suất Năng Lượng GPU: Yếu Tố Quyết Định Hay Chỉ Là Phụ Trợ Khi Chọn Card Đồ Họa?

Administrator

10 Tiện Ích Mở Rộng VS Code Hữu Ích Nhất Dân Lập Trình Không Thể Thiếu

Administrator