Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Windows

แก้ไข WMI Filter Win32_OperatingSystem BuildNumber ไม่ทำงานใน Windows 10 (String vs Integer)

WMI Group Policy Filter ที่เปรียบเทียบ Win32_OperatingSystem.BuildNumber ไม่ทำงานใน Windows 10 เพราะ BuildNumber เป็น String ไม่ใช่ Integer ทำให้ "10xxx" น้อยกว่า "9600" (String Comparison)

ปัญหา

Filter: Select BuildNumber from Win32_OperatingSystem WHERE BuildNumber >= 9200

คาดหวัง: ใช้ได้กับ Win 8 (9200), 8.1 (9600), 10 (10240+)

จริง: Windows 10 Build (10240, 10586, 14393...) ถูก exclude เพราะ "1" < "9"

วิธีแก้: ใช้ Filter ที่จัดการ String Comparison ให้ถูกต้อง

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]%"

หมายเหตุ: มีหลายวิธี Force String Comparison ให้ทำงานถูกต้อง ใช้วิธีไหนก็ได้ ตัวอย่างข้างต้นทำงานได้จริง

ตาราง Build Number อ้างอิง

BuildVersion
9200Windows 8
9600Windows 8.1
10240Windows 10 RTM
105861511
143931607
150631703
162991709
171341803
177631809
183621903