ผมประสบกับปัญหาได้รับข้อผิดผลาดเมื่อพยายามทำการแก้ไข Group Policy บนเครื่องแท็บเล็ต Windows 10 Version 1511 (November Update) ด้วยโปรแกรม Group Policy Editor (gpedit.msc) โดยจะได้รับข้อความแสดงความผิดพลาดดังรูปที่ 1
รายละเอียดปัญหา
สืบเนื่องจากผมต้องการตั้งค่า Automatic Update เครื่องแท็บเล็ต Windows 10 Version 1511 (November Update) ซึ่งอัพเกรดมาจาก Windows 10 RTM (Build 10240) ให้รับการอัพเดต WSUS Server แทนการอัพเดตจาก Windows Update ของไมโครซอฟท์ แต่เมื่อผมเปิดโปรแกรม Group Policy Editor (กด Windows + R ป้อน gpedit.msc แล้วคลิก OK) ปรากฏว่าได้รับข้อความแสดงความผิดพลาดด้านล่าง (ดูรูปที่ 1 ประกอบ)
Namespace ‘Microsoft.Policies.Sensors.WindowsLocationProvider’ is already defined as the target namespace for another file in the store.
File C:\WINDOWS\PolicyDefinitions\Microsoft-Windows-Geolocation-WLPAdm.admx, line 5, column 110
รูปที่ 1
แม้ว่าผมจะทำการปิดข้อความดังกล่าวนี้ด้วยการคลิก OK แล้วทำการตั้งค่า Automatic Update ได้แต่ผมจะได้รับข้อความนี้ในทุกครั้งที่ผมทำการคลิกโหนดของนโยบาย
สาเหตุ
สาเหตุที่ทำให้เกิดข้อผิดพลาดเมื่อพยายามแก้ไขนโยบายกลุ่มบน Windows 10 version 1511 ซึ่งอัพเกรดมาจาก Windows 10 RTM เนื่องจาก Windows 10 RTM จะทำการเปลี่ยนชื่อไฟล์แม่แบบ ADMX และ ADML จาก LocationProviderAdm.admx เป็น Microsoft-Windows-Geolocation-WLPAdm.admx จากนั้นเมื่อทำการอัพเกรดจาก Windows 10 RTM ไปเป็น Windows 10 version 1511 ระบบจะทำการคัดลอกไฟล์ LocationProviderAdm.admx ไปยังโฟลเดอร์ C:\Windows\PolicyDefinitions\ ในขณะที่ไฟล์เก่า คือ Microsoft-Windows-Geolocation-WLPAdm.admx ยังคงอยู่ในโฟลเดอร์ดังกล่าว ส่งผลทำให้เกิดการทำงานขัดแย้งกันส่งผลให้แจ้งข้อผิดพลาดดังรูปที่ 1
รูปที่ 2
ปัญหานี้เกิดขึ้นเฉพาะบน Windows 10 version 1511 ที่อัพเกรดจาก Windows 10 RTM ในกรณี Windows 10 version 1511 ที่อัพเกรดมาจาก Windows 8.1 หรือ 7 จะไม่เกิดปัญหาดังกล่าวนี้
วิธีแก้ไข
วิธีการแก้ไขปัญหานี้ทำได้ไม่ยาก คือ ทำการเปลี่ยนชื่อหรือลบไฟล์แม่แบบตัวเก่า อย่างไรก็ตามมีปัญหาเล็กน้อยในการทำดังกล่าว เนื่องจากไฟล์ ADMX และ ADML ถูกป้องกันโดยระบบ (system-protected) ดังนั้นจะต้องทำการเปลี่ยนเจ้าของ (Take Ownership) ไฟล์ก่อนจึงสามารถเปลี่ยนชื่อหรือลบไฟล์ได้ โดยต้องทำที่คอมมานด์พร้อมท์ด้วยระดับสิทธิ์ผู้ดูแลระบบดามขั้นตอนดังนี้
1. (ปิดโปรแกรม Group Policy Editor ก่อนทำนะครับ) บนหน้าเดสก์ท็อปให้คลิกขวาบนปุ่ม Start หรือกดปุ่ม Windows + X จากนั้นคลิก Command Prompt (Admin) แล้วคลิก Yes บนหน้า User Account Control (ถ้ามี)
2. ที่คอมมานด์พร้อมท์ให้รันสั่งด้านล่าง
takeown /F “C:\Windows\PolicyDefinitions\Microsoft-Windows-Geolocation-WLPAdm.admx” /A
takeown /F “C:\Windows\PolicyDefinitions\en-US\Microsoft-Windows-Geolocation-WLPAdm.adml” /A
3. ให้สิทธิ์ Full Control ทั้ง 2 ไฟล์แก่ผู้ดูแลระบบ
4. ทำการเปลี่ยนชื่อทั้ง 2 ไฟล์เป็นนามสกุล .old (หรือลบก็ได้ถ้าหากต้องการ)
5. เปิดโปรแกรม Group Policy Editor แล้วทำการแก้ไขนโยบายกลุ่มอีกครั้ง
สรุป
บนพีซี Windows 10 Version 1511 ที่อัพเกรดมาจาก Windows 10 RTM จะมีปัญหาในการแก้ไขนโยบายกลุ่มเนื่องจากเกิดจากความขัดแย้งของไฟล์ LocationProviderAdm.admx เป็น Microsoft-Windows-Geolocation-WLPAdm.admx ซึ่งแก้ไขโดยการเปลี่ยนชื่อหรือลบไฟล์ Microsoft-Windows-Geolocation-WLPAdm.admx
ข้อมูลอ้างอิง
https://support.microsoft.com/en-us/kb/3077013