Lưu script PowerShell với tùy chọn Save As trong Notepad
Máy Tính

Cách Tự Động Cập Nhật Windows 11 Bằng PowerShell để Tránh Gián Đoạn

Windows Update là một trong những tính năng của Windows 11 thường bị người dùng chỉ trích nhiều nhất. Việc cập nhật và khởi động lại bắt buộc có thể xảy ra vào những thời điểm tệ nhất, gây ra không ít phiền toái. Tuy nhiên, đây lại là một thành phần thiết yếu để giữ cho máy tính của bạn an toàn và bảo mật.

Mặc dù vậy, nếu bạn không muốn các bản cập nhật làm gián đoạn công việc của mình, có một giải pháp hiệu quả. PowerShell cung cấp các công cụ để bạn tự động hóa quá trình Windows Update, giúp mọi thứ trở nên ít gây khó chịu hơn rất nhiều. Nếu điều này nghe có vẻ hấp dẫn, chúng tôi sẽ hướng dẫn bạn chi tiết cách thực hiện. Mọi bước liên quan đến PowerShell đều cần được chạy với quyền quản trị viên (administrator privileges) để đảm bảo chúng hoạt động đúng như mong muốn.

Chuẩn Bị Trước Khi Tự Động Hóa Windows Update

Để tự động hóa Windows Update, tất cả những gì bạn thực sự cần là 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, và một tài khoản người dùng có quyền quản trị. Với những điều kiện này, bạn sẽ muốn cài đặt module PSWindowsUpdate, 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 để quản lý Windows Updates. Tuy nhiên, trong hướng dẫn này, chúng ta tập trung vào cách tự động hóa quá trình, vì vậy các bước tương đối đơn giản.

Cài đặt Module PSWindowsUpdate

Để cài đặt module này, 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

Nhấn Y để chấp nhận lời nhắc xuất hiện (có thể yêu cầu cài đặt NuGet provider – trình cung cấp NuGet, điều này có thể không xuất hiện nếu bạn đã có phiên bản mới nhất), sau đó nhấn A để chọn Yes to all (Đồng ý với tất cả).

Nhập Module PSWindowsUpdate

Tiếp theo, bạn sẽ phải nhập module với lệnh sau:

Import-Module PSWindowsUpdate

Nếu được hỏi, nhấn A để luôn tin cậy module này. Bạn sẽ cần điều này để quá trình tự động hóa hoạt động sau này.

Thiết Lập Chính Sách Thực Thi PowerShell (Execution Policy)

Nếu bước trên không hoạt động, bạn có thể cần phải thiết lập chính sách thực thi trên PC của mình. Hãy chạy lệnh này:

Set-ExecutionPolicy Unrestricted

Sau đó, thử chạy lại lệnh nhập module và nó sẽ hoạt động. Tuy nhiên, hãy lưu ý rằng việc sử dụng cài đặt chính sách Unrestricted có thể tiềm ẩn rủi ro bảo mật nhất định.

Tự Động Hóa Windows Update với PowerShell

Sau khi bạn đã cài đặt module PSWindowsUpdate như trên, lựa chọn tốt nhất 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 có sẵn. May mắn thay, script này đã được tạo sẵn, vì vậy bạn có một vài lựa chọn. Bạn có thể tải script PowerShell tại đây, hoặc làm theo các bước dưới đây để tự tạo nó:

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

  1. Đầu tiên, tạo một thư mục tên là Scripts ở thư mục gốc của ổ C:. Sau đó, bên trong thư mục mới này, tạo một thư mục con tên là Logs. Điều này sẽ giúp bạn dễ dàng xem nhật ký cho script của mình. Hoặc, bạn có thể chỉnh sửa script trong Notepad để tạo nhật ký trong một thư mục khác đã tồn tại. Tuy nhiên, script không thể ghi vào một thư mục chưa được tạo.
  2. Mở Notepad.
  3. Sao chép khối văn bản trên trang này và dán vào Notepad.
  4. Nhấp vào File > Save As (Lưu dưới dạng).
    Lưu script PowerShell với tùy chọn Save As trong NotepadLưu script PowerShell với tùy chọn Save As trong Notepad
  5. Điều hướng đến thư mục bạn muốn lưu tệp (ví dụ, chúng ta sẽ sử dụng C:Userstên_người_dùngDocuments).
  6. Thay đổi menu thả xuống Save as type (Lưu dưới dạng) thành All files (Tất cả tệp).
  7. Chọn bất kỳ tên nào cho tệp của bạn và thêm phần mở rộng .ps1 vào cuối. Ví dụ: RunWindowsUpdate.ps1.
    Hộp thoại Save As cho thấy loại tệp là All types và tên tệp kết thúc bằng .ps1Hộp thoại Save As cho thấy loại tệp là All types và tên tệp kết thúc bằng .ps1
  8. Nhấp vào Save (Lưu).

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

Tự Động Hóa Việc Chạy Script

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. Theo mặc định, các script PowerShell bị chặn chạy tự động, vì vậy bạn phải bỏ chặn tệp 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:Userstên_người_dùngDocumentsRunWindowsUpdate.ps1"

Lệnh này sẽ cho phép script tự động hóa chạy mà không bị hạn chế, vì vậy bạn không phải phê duyệt hoặc thực hiện bất cứ điều gì thủ công.

Tiếp theo, bạn có thể tạo tự động hóa bằng cách sử dụng một script PowerShell khác để tự động hóa quá trình, hoặc bạn có thể sử dụng Task Scheduler (Trình Lập Lịch Tác Vụ) để thực hiện. Chúng tôi sẽ sử dụng phương pháp thứ hai vì nó dễ minh họa hơn.

Sử Dụng Task Scheduler (Trình Lập Lịch Tác Vụ)

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

  2. Sử dụng menu ở phía bên phải của 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 với nút Create Basic Task được tô sángGiao diện Task Scheduler với nút Create Basic Task được tô sáng

  3. Đặt tên tác vụ là Cập nhật Windows tự động (hoặc bất kỳ tên nào bạn thích) và thêm mô tả nếu bạn muốn. Nhấp vào Next (Tiếp theo).

  4. Trong phần Trigger (Kích hoạt), chọn tần suất script nên chạy. Tùy chọn tốt nhất ở đây có lẽ là đặt thành Daily (Hàng ngày) để bạn có thể chắc chắn sẽ cài đặt bất kỳ bản cập nhật nào trước khi chúng có thể làm phiền bạn. Nhấp vào 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 một thời điểm mà bạn không cần sử dụng máy tính. Ví dụ: 3 giờ sáng 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 hiển thị ngày và giờ bắt đầu chạy tác vụHộp thoại tạo tác vụ mới hiển thị ngày và giờ bắt đầu chạy tác vụBạn cũng có thể chọn số ngày trôi qua giữa mỗi lần chạy. Mặc định là 1. Nhấp vào Next.

  6. Trong tab Action (Hành động), chọn Start a program (Khởi động một chương trình) và nhấp vào 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 tệp bằng đường dẫn bạn đang sử dụng trên máy của mình):

    -NoProfile -WindowStyle Hidden -File "C:Userstên_người_dùngDocumentsRunWindowsUpdate.ps1"
  9. Nhấp vào Next và sau đó Finish (Kết thúc).

  10. Sau khi tạo tác vụ, đi tới Task Scheduler Library (Thư viện Trình Lập Lịch Tác Vụ) ở phía bên trái của cửa sổ.

  11. Nhấp chuột phải vào tác vụ bạn đã tạo và chọn Properties (Thuộc tính).

  12. Nhấp vào Change User or Group… (Thay đổi Người dùng hoặc Nhóm…).
    Ảnh chụp màn hình của một tác vụ trong Task SchedulerẢnh chụp màn hình của một tác vụ trong Task Scheduler

  13. 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 Task Scheduler để chọn người dùng chạy tác vụHộp thoại Task Scheduler để chọn người dùng chạy tác vụ

  14. Nhấp vào OK.

  15. Chọn hộp kiểm Run with highest privileges (Chạy với quyền cao nhất).
    Thuộc tính tác vụ trong Task Scheduler với tùy chọn chạy tác vụ với quyền cao nhất được tô sángThuộc tính tác vụ trong Task Scheduler với tùy chọn chạy tác vụ với quyền cao nhất được tô sáng

  16. (Tùy chọn) Bạn cũng có thể muốn đi tới tab Conditions (Điều kiện) và bỏ chọn hộp kiểm có nội dung “Start the task only if the computer is on AC power” (Chỉ bắt đầu tác vụ nếu máy tính đang sử dụng nguồ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 cắm sạc.

  17. Nhấp vào OK để hoàn tất thiết lập.

Script bây giờ sẽ chạy tự động mỗi 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 cũng muốn sử dụng PowerShell cho việc này, bạn có thể sử dụng một script để tạo một tác vụ theo lịch. Để làm điều đó, bạn sẽ sử dụng Notepad một lần nữa như chúng ta đã 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 cho 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 tệp .PS1 và sau đó chạy thủ công (bạn chỉ cần chạy một lần). Cũng đảm bảo thay đổi đường dẫn đến script để khớp với nơi bạn đã lưu trữ tệp .PS1.

Mở Rộng Khả Năng Của Script Cập Nhật Tự Động

Script trên là một script tương đối cơ bản sẽ kiểm tra và cài đặt các bản cập nhật Windows, nhưng chỉ có vậy. Không có logic để xử lý các lỗi tiềm ẩn và nó 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 Phần Mề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 -MicrosoftUpdate làm đối số 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ư thế này:

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

Giới Hạn Băng Thô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ũng có thể muốn điều chỉnh băng thông cho mỗi PC. Bạn có thể thêm đối số -ThrottleDownload để làm điều này. Một lần nữa, nếu bạn đang sửa đổi script cơ bản, dòng mới sẽ trông như thế này (ví dụ):

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

Cập Nhật Trên Máy Từ Xa

Cũng có thể sử dụng script này trên các máy từ xa bằng PowerShell Remoting, vì vậy đó là một cân nhắc khác cần thực hiện. 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 điều này tại đây (do Paul Amman cung cấp trong bài đăng trên Medium này). Tuy nhiên, bạn sẽ phải sửa đổi nó với tên máy tính phù hợp mà bạn muốn nhắm mục tiêu.

Kiểm Tra Lỗi Cập Nhật

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 (Trình xem sự kiện) để xem điều gì đã xảy ra, hoặc duyệt đến vị trí nơi các tệp nhật ký của bạn được lưu trữ để xem những gì được hiển thị ở đó.

Biến Windows Update Thành Dễ Dàng

Windows Update đôi khi chắc chắn có thể gây khó chịu, nhưng script PowerShell này giúp mọi việc dễ dàng hơn nhiều khi bạn không còn phải lo lắng về việc máy tính cài đặt cập nhật và khởi động lại khi bạn không muốn. Vì mọi thứ xảy ra theo một lịch trình đã định, bạn sẽ không phải lo lắng về bất kỳ bất ngờ nào bị áp đặt lên mình. Ngay cả khi bạn không am hiểu về kỹ thuật, các bước này đủ dễ thực hiện, vì vậy rất đáng để thử. Chúng tôi hy vọng bài viết này đã giúp bạn kiểm soát hoàn toàn quá trình cập nhật trên Windows 11. Đừng ngần ngại để lại bình luận nếu bạn có bất kỳ thắc mắc hoặc kinh nghiệm nào muốn chia sẻ!

Related posts

Khám phá Quadlet và Podman: Nâng tầm quản lý Container như Dịch vụ Systemd

Administrator

6 Công Cụ Tự Động Hóa Windows 11 Mạnh Mẽ Giúp Tối Ưu Quy Trình Làm Việc

Administrator

Docmost: Giải Pháp Quản Lý Kiến Thức Tự Host Hoàn Hảo Thay Thế Notion

Administrator

Ladybird: Trình Duyệt Độc Lập Đầy Hứa Hẹn, Có Thể Thay Đổi Cuộc Chơi Web?

Administrator

Đa GPU Trong Gaming: Tại Sao Từng Là Xu Hướng Nhưng Giờ Đã Gần Như Biến Mất?

Administrator

Ứng Dụng Outlook Mới Trên Windows 10: Vấn Đề Gì Đang Gây Tranh Cãi?

Administrator