Trong bài viết hôm nay, chúng tôi sẽ xác định nguyên nhân và cung cấp giải pháp cho vấn đề bộ lọc Chính sách nhóm Windows Management Instrumentation (WMI), so sánh Win32_OperatingSystem BuildNumber, không hoạt động như mong đợi trên Windows 10.
Windows Management Instrumentation (WMI) là việc triển khai của Microsoft cho Quản trị doanh nghiệp dựa trên Web (WBEM) và Mô hình thông tin chung (CIM) từ Distributed Management Task Force (DMTF) – một tập hợp các đặc tả từ Microsoft để hợp nhất việc quản lý thiết bị và ứng dụng trong mạng từ hệ thống điện toán Windows.

WMI cho phép ngôn ngữ kịch bản (như VBScript hoặc Windows PowerShell) quản lý máy tính cá nhân và máy chủ Microsoft Windows, cả cục bộ và từ xa. WMI được cài đặt sẵn trong Windows 2000 và các hệ điều hành Microsoft mới hơn.
WMI cũng hỗ trợ các hành động như cấu hình cài đặt bảo mật, đặt và thay đổi thuộc tính hệ thống, đặt và thay đổi quyền cho người dùng và nhóm người dùng được ủy quyền, gán và thay đổi nhãn ổ đĩa, lên lịch quy trình chạy tại thời điểm cụ thể, sao lưu kho đối tượng, và bật hoặc tắt ghi log lỗi.
Bộ lọc Chính sách nhóm WMI Win32_OperatingSystem BuildNumber không hoạt động
Bạn gặp sự cố này dựa trên kịch bản sau;
Bạn muốn Chính sách nhóm áp dụng cho Windows 8.1 và các phiên bản Windows sau này. Bạn muốn dùng Win32_OperatingSystem BuildNumber để làm điều này. Và bạn tạo bộ lọc Windows Management Instrumentation (WMI) sau:
"Select BuildNumber from Win32_OperatingSystem WHERE BuildNumber >= 9200 "
Dựa trên các số bản dựng đã biết của các phiên bản Windows như trong bảng dưới đây:
| Số bản dựng | Phiên bản Windows |
|---|---|
| 9200 | Windows 8 |
| 9600 | Windows 8.1 |
| 10240 | Windows 10 |
| 10586 | Windows 10, phiên bản 1511 |
| 14393 | Windows 10, phiên bản 1607 |
| 15063 | Windows 10, phiên bản 1703 |
| 16299 | Windows 10, phiên bản 1709 |
| 17134 | Windows 10, phiên bản 1803 |
| 17763 | Windows 10, phiên bản 1809 |
| 18362 | Windows 10, phiên bản 1903 |
Trong kịch bản này, mặc dù bạn mong đợi bộ lọc WMI sẽ khiến cài đặt Chính sách nhóm áp dụng cho số bản dựng 9200 và các bản dựng sau đó, các bản dựng Windows 10 bị loại trừ.
Theo Microsoft, sự cố này xảy ra vì kiểu dữ liệu cho BuildNumber là String (chuỗi) chứ không phải Integer (số nguyên). Do đó, 10*** < 9600.
Để giải quyết sự cố này, hãy dùng bộ lọc giống như ví dụ sau:
Select BuildNumber from Win32_OperatingSystem WHERE BuildNumber >= 10000 AND BuildNumber LIKE "%[123456789][0123456789][0123456789][0123456789][0123456789]%" OR BuildNumber >= 9200 AND BuildNumber LIKE "%[123456789][0123456789][0123456789][0123456789]%"
Lưu ý: Có một số cách để buộc chuỗi so sánh trả về kết quả bạn muốn. Bạn có thể dùng bất kỳ phương pháp nào bạn thích. Ví dụ này hoạt động đầy đủ.
Hy vọng điều này giúp ích!
