Windows Registry (รีจิสทรี) คือฐานข้อมูลที่ระบบกำหนด ใช้เก็บข้อมูลการตั้งค่าขององค์ประกอบระบบและแอปพลิเคชันต่างๆ ทุกครั้งที่ติดตั้งหรือลบโปรแกรมใน Windows รีจิสทรีจะเปลี่ยนไป นั่นคือ ค่าของคีย์ (Key) บางคีย์จะถูกเปลี่ยนแปลง
นึกภาพ Registry Editor ว่าเป็นตารางใหญ่ ที่เก็บการตั้งค่าระบบและแอปพลิเคชันแบบลำดับชั้น (Hierarchical) แอปพลิเคชันต่างๆ ใช้ Windows Registry ในบางรูปแบบ และใช้ Registry API เพื่อดึงข้อมูล แก้ไข หรือลบข้อมูลจากรีจิสทรี
มีหลายสิ่งที่ทำได้กับ Windows Registry แต่บทความนี้จะเน้นโครงสร้างและการทำงานพื้นฐาน
โครงสร้างของ Windows Registry
Windows Registry ประกอบด้วย 2 องค์ประกอบหลัก คือ Keys (คีย์) และ Values (ค่า) ข้อมูลจัดเก็บในรูปแบบต้นไม้ (Tree) แต่ละโหนดเรียกว่า Key แต่ละ Key สามารถมี Subkeys (คีย์ย่อย) หลายตัว ซึ่งอาจมี Subkeys อีกต่อไป
แต่ละ Key ยังมีรายการข้อมูลเรียกว่า Values ขึ้นอยู่กับแอปพลิเคชัน บางแอปไม่ต้องเก็บ Values ใน Key บางตัว เพราะการมี Key อยู่เพียงพอสำหรับการทำงาน แต่โดยทั่วไป แอปพลิเคชันจะเปิด Key และใช้ Value ที่เกี่ยวข้อง
ชื่อ Key สามารถมีตัวอักษรและตัวเลข ไม่สำคัญตัวพิมพ์ใหญ่เล็ก (Not case sensitive) แต่ห้ามใช้ตัวอักษรแบ็กสแลช (\)
Predefined Keys (คีย์ที่กำหนดไว้ล่วงหน้า) ใน Windows Registry
มี Root Keys ทั้งหมด 6 ตัว:
- HKEY_CLASSES_ROOT
- HKEY_CURRENT_USER
- HKEY_LOCAL_MACHINE
- HKEY_USERS
- HKEY_CURRENT_CONFIG
- HKEY_DYN_DATA
HKEY_CLASSES_ROOT: เก็บข้อมูลเกี่ยวกับแอปพลิเคชันที่ลงทะเบียน การเชื่อมโยงไฟล์ (File Associations) และ OLE Object Class IDs Shell และแอปพลิเคชัน COM ใช้ข้อมูลในคีย์นี้ รวมถึงข้อมูลสนับสนุน DDE และ OLE เพื่อความเข้ากันได้กับฐานข้อมูลการลงทะเบียน Windows เก่า
HKEY_CURRENT_USER: เก็บเฉพาะการตั้งค่าเฉพาะผู้ใช้ (User-specific settings) หมายถึง การตั้งค่าของผู้ใช้ที่ล็อกอินอยู่ (รวมถึง Administrator) จะถูกเก็บในคีย์นี้ แต่ละผู้ใช้มีไฟล์ NTUSER.DAT และ USRCLASS.DAT แยกกัน — ตรวจสอบได้ที่ My Computer → OS Drive → Documents and Settings
การตั้งค่าและความชอบเฉพาะผู้ใช้ รวมถึง ตัวแปรสภาพแวดล้อม (Environment Variables) รายการเริ่มต้น (Startup Items) กลุ่มโปรแกรม การเชื่อมต่อเครือข่ายที่ใช้งานอยู่ และการตั้งค่าแอปพลิเคชันต่างๆ เมื่อใช้ "Switch user" หรือ Log off แล้วล็อกอินกลับมา คีย์นี้จะถูกเรียกใช้และโหลดตัวแปรระบบและโมดูลสภาพแวดล้อมของผู้ใชนนั้น
ตัวอย่าง: Harry และ Tom ใช้คอมพิวเตอร์เครื่องเดียวกัน ทั้งคู่ใช้ Word Processor ตัวเดียวกัน Harry ตั้งฟอนต์เริ่มต้นเป็น "Arial" ส่วน Tom ตั้งเป็น "Verdana" Word Processor เก็บข้อมูลนี้ไว้ที่ HKEY_CURRENT_USER\Softwarename\ เมื่อระบบตรวจพบผู้ใช้เฉพาะตัว จะโหลดสภาพแวดล้อมจาก Subkey ของแอปพลิเคชันภายใต้ HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE: Subkeys ภายใต้คีย์นี้กำหนดสถานะทางกายภาพของคอมพิวเตอร์ รวมถึง หน่วยความจำระบบที่ใช้งานได้ ประเภทบัส (Bus Type) รายละเอียดฮาร์ดแวร์ที่ติดตั้ง ฯลฯ Subkeys มีรายการครบถ้วนของข้อมูลการตั้งค่าฮาร์ดแวร์ที่ระบบปฏิบัติการเคยใช้ ข้อมูลระบบสำคัญอื่นๆ ก็อยู่ที่นี่ เช่น การตั้งค่าเครือข่าย Plug and Play ความปลอดภัยเครือข่าย ชื่อเซิร์ฟเวอร์ ฯลฯ
มี Subkeys หลัก 4 ตัวของ HKEY_LOCAL_MACHINE — SECURITY, SYSTEM, SOFTWARE และ SAM ไฟล์อยู่ที่ My Computer → OS Drive → Windows → System32 → Config Subkey ที่ 5 ชื่อ "HARDWARE" สร้างขึ้นแบบไดนามิก ข้อมูลไม่ได้เก็บบนดิสก์ Subkey SYSTEM เก็บข้อมูลไดรเวอร์และบริการระบบ SOFTWARE เก็บการตั้งค่า Windows และรายละเอียดซอฟต์แวร์อื่นๆ
HKEY_USERS: ประกอบด้วย Subkeys ที่สอดคล้องกับ HKEY_CURRENT_USER สำหรับแต่ละโปรไฟล์ผู้ใช้ที่ใช้งานอยู่บนระบบปฏิบัติการ รายการรีจิสทรีที่อยู่ภายใต้คีย์นี้ กำหนดการตั้งค่าผู้ใช้สำหรับผู้ใช้ใหม่บนเครื่องท้องถิ่น และการตั้งค่าผู้ใช้ที่ล็อกอินอยู่
HKEY_CURRENT_CONFIG: มีข้อมูลที่ใช้ได้ในรันไทม์ (Runtime) และข้อมูลเกี่ยวกับโปรไฟล์ฮาร์ดแวร์ของระบบปฏิบัติการ ข้อมูลในคีย์นี้ไม่ได้เก็บบนดิสก์ แต่สร้างขึ้นแบบไดนามิกเมื่อระบบบูต ค่าที่เก็บในคีย์นี้ (และ Subkeys) บอกความแตกต่างระหว่างการตั้งค่าฮาร์ดแวร์ปัจจุบันกับการตั้งค่ามาตรฐานของระบบปฏิบัติการ
คีย์นี้ยังเรียกได้ว่า Alias ของ HKEY_LOCAL_MACHINE\System\CurrentControlSet\Hardware Profiles\Current
HKEY_DYN_DATA: ใช้ใน Windows NT เวอร์ชันเก่า — Windows 95 ถึง Windows Me มีข้อมูลเกี่ยวกับอุปกรณ์ฮาร์ดแวร์ต่างๆ และสถิติประสิทธิภาพเครือข่าย ข้อมูลรวบรวมแบบไดนามิกระหว่างบูตระบบ และเก็บใน RAM ไม่ได้เก็บบนดิสก์
การแก้ไข Windows Registry
เพื่อเข้าถึง Windows Registry ให้พิมพ์ regedit ในกล่องค้นหาของเมนู Start Windows หากใช้ Windows XP หรือเก่ากว่า ไปที่ Run → regedit แล้วกด Enter เพื่อเปิด Registry Editor
การแก้ไขค่าของรายการรีจิสทรีที่มีอยู่ ควรทำอย่างระมัดระวัง เพราะการเปลี่ยนแปลงผิดพลาดอาจทำให้ระบบไม่เสถียร
อ่านเพิ่มเติมเกี่ยวกับ Windows Registry:
- วิธีสำรอง Registry ใน Windows 7
- วิธีทำความสะอาด Windows Registry
- ทำไมต้อง Defragment Windows Registry