PowerShell là công cụ dòng lệnh mạnh mẽ được tích hợp sẵn trên Windows, cho phép quản trị viên thực hiện hàng loạt tác vụ quản lý hệ thống một cách tự động. Trong đó, cách kiểm tra update bằng PowerShell là một kỹ năng quan trọng giúp bạn kiểm soát và xử lý các bản vá bảo mật, cập nhật tính năng từ Microsoft mà không cần phải thao tác thủ công qua giao diện Windows Update. Việc nắm vững phương pháp này giúp tiết kiệm thời gian, tăng độ chính xác và dễ dàng tích hợp vào các kịch bản quản trị quy mô lớn.
Bản chất việc kiểm tra update bằng PowerShell

Kiểm tra update bằng PowerShell thực chất là sử dụng các module hoặc commandlets được thiết kế để tương tác với dịch vụ Windows Update Agent (WUA). Thay vì mở ứng dụng Settings hoặc Control Panel, bạn gọi các lệnh để Windows liên hệ với máy chủ Microsoft hoặc WSUS để lấy danh sách các bản cập nhật hiện có, trạng thái đã cài đặt, hoặc kích hoạt quá trình tìm kiếm và tải về.
Các module PowerShell hỗ trợ kiểm tra update
- PSWindowsUpdate – Module phổ biến nhất, do cộng đồng phát triển, cung cấp các lệnh như Get-WUList, Install-WUUpdates, Get-WUHistory.
- WindowsUpdateProvider – Module có sẵn trên Windows 10/11 và Windows Server 2016 trở lên, hỗ trợ các cmdlet kiểu WUUpdate.
- COM Object (Microsoft.Update.Session) – Phương thức cơ bản thông qua tạo đối tượng COM, không cần cài module.
- Module UpdateServices – Dành riêng cho việc quản lý máy chủ WSUS.
- Cần có quyền Administrator để thực thi các lệnh.
- Module PSWindowsUpdate không được cài sẵn, phải cài đặt bằng Install-Module.
- Trên một số phiên bản Windows cũ có thể thiếu module tích hợp.
- Phải cấu hình ExecutionPolicy cho phép chạy script.
- Mở PowerShell với quyền Administrator (Run as Administrator).
- Kiểm tra ExecutionPolicy:
Get-ExecutionPolicy. Nếu là Restricted, chạy lệnhSet-ExecutionPolicy RemoteSigned -Scope CurrentUser. - Nếu dùng module PSWindowsUpdate, cài bằng lệnh
Install-Module -Name PSWindowsUpdate. Get-WUList– Hiển thị danh sách các bản cập nhật chưa cài đặt.Get-WUHistory– Hiển thị lịch sử cài đặt update.Get-WUInstallerStatus– Kiểm tra trạng thái dịch vụ Windows Update.
Lợi ích của việc sử dụng PowerShell để kiểm tra update

| Tiêu chí | Lợi ích |
|---|---|
| Tự động hóa | Có thể lập lịch chạy script, tích hợp vào công cụ quản lý cấu hình (SCCM, Ansible). |
| Kiểm tra hàng loạt | Dễ dàng kiểm tra update trên nhiều máy tính từ xa qua PowerShell Remoting. |
| Chi tiết thông tin | Xuất ra danh sách dưới dạng object để lọc, sắp xếp, xuất file CSV. |
| Kiểm soát chặt chẽ | Có thể chọn cài hoặc từ chối từng update cụ thể dựa trên KB. |
| Giảm thiểu sai sót | Giảm thao tác thủ công, tránh bỏ sót update quan trọng. |
Hạn chế cần lưu ý
So sánh phương pháp kiểm tra update bằng PowerShell và giao diện đồ họa

| Tính năng | PowerShell | GUI Windows Update |
|---|---|---|
| Tốc độ kiểm tra hàng loạt | Nhanh, không giới hạn số lượng máy | Chậm, phải thao tác từng máy |
| Khả năng xuất báo cáo | Có thể xuất CSV, HTML, XML | Không có tùy chọn xuất trực tiếp |
| Lọc update theo tiêu chí | Lọc mềm dẻo (KB, tên, severity) | Chỉ có bộ lọc cơ bản |
| Khả năng tích hợp | Rất tốt | Không có |
| Yêu cầu người dùng | Cần kiến thức PowerShell | Dễ sử dụng |
Hướng dẫn chi tiết cách kiểm tra update bằng PowerShell

1. Chuẩn bị môi trường
Trước khi thực hiện cách kiểm tra update bằng PowerShell, bạn cần đảm bảo:
2. Kiểm tra update bằng module PSWindowsUpdate
Các lệnh cơ bản
Ví dụ: Kiểm tra update đang chờ
PS C:> Get-WUList -Category Security
Lệnh trên sẽ liệt kê tất cả các bản cập nhật bảo mật chưa được cài.
Bạn sử dụng COM Object như hướng dẫn ở trên: tạo Session và UpdateSearcher. Phương pháp này có sẵn trên mọi Windows có hỗ trợ COM.
Lệnh Get-WUList không tìm thấy update, nguyên nhân do đâu?
Có thể do máy chưa được kết nối đến Windows Update hoặc WSUS, tường lửa chặn, hoặc dịch vụ Windows Update bị tắt. Hãy kiểm tra bằng lệnh Get-Service wuauserv và netsh winhttp show proxy.
Có thể kiểm tra update cho nhiều máy cùng lúc không?
Có, bạn dùng Invoke-Command với tham số -ComputerName và cung cấp danh sách máy. Yêu cầu máy đích có bật PowerShell Remoting và quyền truy cập hợp lệ.
Sự khác biệt giữa Get-WUList và Get-WUHistory là gì?
Get-WUList hiển thị các bản cập nhật chưa được cài đặt, trong khi Get-WUHistory hiển thị lịch sử các bản cập nhật đã cài đặt trên máy.
Làm thế nào để kiểm tra update cho Windows Server Core không có GUI?
PowerShell là công cụ chính trên Server Core. Bạn có thể dùng Get-WUList hoặc COM Object tương tự. Nên cài module PSWindowsUpdate trước để có nhiều tính năng hơn.
Kết luận

Việc nắm vững cách kiểm tra update bằng PowerShell giúp quản trị viên hệ thống nâng cao hiệu quả công việc, từ kiểm tra thủ công đến tự động hóa hoàn toàn. Bạn có thể lựa chọn giữa module PSWindowsUpdate, module tích hợp sẵn, hoặc COM Object tùy theo nhu cầu và môi trường. Bất kể phương pháp nào, nguyên tắc chung vẫn là đảm bảo quyền hạn, kết nối mạng, và xử lý lỗi đúng cách. Hãy bắt đầu bằng việc thử nghiệm với một máy tính đơn lẻ, sau đó mở rộng ra quy mô mạng để tối ưu quy trình quản trị bản vá cho toàn tổ chức.






