อ่าน 17 นาที
รีจิสทรีของ Windows
รีจิสทรี ของ Windows เป็น ฐานข้อมูลแบบลำดับชั้น ที่จัดเก็บ การตั้งค่า ระดับต่ำ สำหรับ ระบบปฏิบัติการ Microsoft Windows และสำหรับแอปพลิเคชันที่เลือกใช้รีจิสทรี เคอร์เนล ไดรเวอร์...
รีจิสทรีของ Windows
| โปรแกรมแก้ไขรีจิสทรีของ Windows | |
|---|---|
Registry Editor ซึ่งเป็นส่วนติดต่อผู้ใช้สำหรับรีจิสทรีในWindows 11 | |
| ชื่ออื่นๆ | regedit, regedit.exe |
| นักพัฒนา | ไมโครซอฟต์ |
| ปล่อย | วันที่ 6 เมษายน 1992 พร้อมระบบปฏิบัติการ Windows 3.1 |
| ระบบปฏิบัติการ | ไมโครซอฟต์ วินโดวส์ |
| แพลตฟอร์ม | IA-32 , x86-64และARM (และในอดีตDEC Alpha , Itanium , MIPSและPowerPC ) |
| รวมอยู่กับ | ไมโครซอฟต์ วินโดวส์ |
| พิมพ์ | ฐานข้อมูลแบบลำดับชั้น |
| ใบอนุญาต | กรรมสิทธิ์ |
| เว็บไซต์ | เรียนรู้ |
รีจิสทรีของ Windowsเป็นฐานข้อมูลแบบลำดับชั้นที่จัดเก็บ การตั้งค่า ระดับต่ำสำหรับ ระบบปฏิบัติการ Microsoft Windowsและสำหรับแอปพลิเคชันที่เลือกใช้รีจิสทรีเคอร์เนลไดรเวอร์อุปกรณ์บริการตัวจัดการบัญชีความปลอดภัยและส่วนติดต่อผู้ใช้ ล้วน สามารถใช้รีจิสทรีได้ นอกจาก นี้รีจิสทรียังอนุญาตให้เข้าถึงตัวนับเพื่อวิเคราะห์ประสิทธิภาพของระบบได้ อีก ด้วย
กล่าวอีกนัยหนึ่งคือ รีจิสทรี หรือ รีจิสทรีของ Windows นั้นประกอบด้วยข้อมูล การตั้งค่า ตัวเลือก และค่าอื่นๆ สำหรับโปรแกรมและฮาร์ดแวร์ที่ติดตั้งในระบบปฏิบัติการ Microsoft Windows ทุกเวอร์ชัน ตัวอย่างเช่น เมื่อติดตั้งโปรแกรม ระบบจะเพิ่มคีย์ย่อยใหม่ที่มีการตั้งค่าต่างๆ เช่น ตำแหน่งที่ตั้งของโปรแกรม เวอร์ชัน และวิธีการเริ่มต้นโปรแกรม ลงในรีจิสทรีของ Windows
เมื่อเปิดตัวพร้อมกับWindows 3.1รีจิสทรีของ Windows ส่วนใหญ่จะจัดเก็บข้อมูลการกำหนดค่าสำหรับส่วนประกอบที่ใช้COM Windows 95และWindows NTได้ขยายการใช้งานเพื่อปรับปรุงและรวมศูนย์ข้อมูลในไฟล์ INI จำนวนมากซึ่งเก็บการกำหนดค่าสำหรับโปรแกรมแต่ละโปรแกรม และถูกจัดเก็บไว้ในตำแหน่งต่างๆ[ 1 ] [ 2 ] การใช้รีจิสทรีของ Windows ไม่ใช่ข้อกำหนดสำหรับแอปพลิเคชัน Windows ตัวอย่างเช่น แอปพลิเคชัน . NET Frameworkใช้ ไฟล์ XMLสำหรับการกำหนดค่า ในขณะที่แอปพลิเคชันแบบพกพามักจะเก็บไฟล์การกำหนดค่าไว้กับไฟล์ ปฏิบัติการ
เหตุผล
ก่อนที่จะมี Windows Registry ไฟล์ . INIจะจัดเก็บการตั้งค่าของแต่ละโปรแกรมเป็นไฟล์ข้อความหรือไฟล์ไบนารีซึ่งมักจะอยู่ในตำแหน่งที่ใช้ร่วมกันซึ่งไม่ได้ให้การตั้งค่าเฉพาะผู้ใช้ในสถานการณ์ที่มีผู้ใช้หลายคน ในทางตรงกันข้าม Windows Registry จะจัดเก็บการตั้งค่าแอปพลิเคชันทั้งหมดไว้ในที่เก็บข้อมูลเชิงตรรกะเดียว (แต่ก็อยู่ในไฟล์แยกต่างหากจำนวนหนึ่ง) และในรูปแบบมาตรฐาน ตามที่Microsoft กล่าวไว้ สิ่งนี้มีข้อดีหลายประการเหนือไฟล์ .INI [ 2 ] [ 3 ]เนื่องจากการแยกวิเคราะห์ไฟล์ทำได้อย่างมีประสิทธิภาพมากขึ้นด้วยรูปแบบไบนารี จึงสามารถอ่านหรือเขียนได้เร็วกว่าไฟล์ INI ที่เป็นข้อความ นอกจากนี้ข้อมูลที่มีประเภทที่ชัดเจนสามารถจัดเก็บไว้ในรีจิสทรีได้ ซึ่งแตกต่างจากข้อมูลข้อความที่จัดเก็บไว้ในไฟล์ .INI นี่เป็นประโยชน์เมื่อแก้ไขคีย์ด้วยตนเองโดยใช้regedit.exeซึ่งเป็นตัวแก้ไขรีจิสทรีในตัวของ Windows เนื่องจากการตั้งค่ารีจิสทรีตามผู้ใช้จะถูกโหลดจากเส้นทางเฉพาะของผู้ใช้แทนที่จะจากตำแหน่งระบบแบบอ่านอย่างเดียว รีจิสทรีจึงอนุญาตให้ผู้ใช้หลายคนใช้เครื่องเดียวกันได้ และยังอนุญาตให้โปรแกรมทำงานได้สำหรับผู้ใช้ที่มีสิทธิ์น้อยกว่า การสำรองข้อมูลและการกู้คืนก็ง่ายขึ้นเช่นกัน เนื่องจากสามารถเข้าถึงรีจิสทรีผ่านการเชื่อมต่อเครือข่ายเพื่อการจัดการ/การสนับสนุนจากระยะไกล รวมถึงจากสคริปต์ โดยใช้ชุดAPI มาตรฐาน ตราบใดที่บริการ Remote Registry ทำงานอยู่และกฎไฟร์วอลล์อนุญาต
เนื่องจากรีจิสทรีเป็นฐานข้อมูล จึงช่วยเพิ่มความสมบูรณ์ของระบบด้วยคุณสมบัติต่างๆ เช่นการอัปเดตแบบอะตอมิกหากสองกระบวนการพยายามอัปเดตค่ารีจิสทรีเดียวกันในเวลาเดียวกัน การเปลี่ยนแปลงของกระบวนการหนึ่งจะเกิดขึ้นก่อนอีกกระบวนการหนึ่ง และความสอดคล้องกันโดยรวมของข้อมูลจะยังคงอยู่ ในกรณีที่มีการเปลี่ยนแปลงไฟล์ .INI สภาวะการแข่งขัน ดังกล่าว อาจส่งผลให้ข้อมูลไม่สอดคล้องกันและไม่ตรงกับการอัปเดตที่พยายามทำทั้งสองครั้ง ระบบปฏิบัติการ Windows Vista และรุ่นที่ใหม่กว่านั้นมีการอัปเดตรีจิสทรีแบบทำธุรกรรมโดยใช้Kernel Transaction Managerซึ่งขยายการรับประกันความเป็นอะตอมิกไปสู่การเปลี่ยนแปลงคีย์หรือค่าหลายรายการด้วยความหมายของการยืนยันและยกเลิกแบบดั้งเดิม (อย่างไรก็ตาม โปรดทราบว่าNTFSก็ให้การสนับสนุนดังกล่าวสำหรับระบบไฟล์เช่นกัน ดังนั้นในทางทฤษฎีแล้ว การรับประกันแบบเดียวกันนี้สามารถทำได้ด้วยไฟล์การกำหนดค่าแบบดั้งเดิม)
โครงสร้าง
กุญแจและค่า
รีจิสทรีประกอบด้วยองค์ประกอบพื้นฐานสองอย่าง ได้แก่คีย์และค่า คีย์รีจิสทรีเป็นวัตถุที่ทำหน้าที่เป็นภาชนะบรรจุ คล้ายกับโฟลเดอร์ ส่วนค่า รีจิสทรี เป็นวัตถุที่ไม่ทำหน้าที่เป็นภาชนะบรรจุ คล้ายกับไฟล์ คีย์อาจมีค่าและคีย์ย่อยอยู่ภายใน การอ้างอิงคีย์ใช้ไวยากรณ์คล้ายกับชื่อพาธของ Windows โดยใช้เครื่องหมายแบ็กสแลชเพื่อระบุระดับลำดับชั้น คีย์ต้องมี ชื่อ ที่ไม่คำนึงถึงตัวพิมพ์ใหญ่เล็กและไม่มีเครื่องหมายแบ็กสแลช
ลำดับชั้นของคีย์รีจิสทรีสามารถเข้าถึงได้จากแฮนเดิลคีย์รูทที่รู้จักเท่านั้น (ซึ่งเป็นแฮนเดิลที่ไม่ระบุชื่อ แต่มีค่าที่ใช้งานได้จริงเป็นแฮนเดิลตัวเลขคงที่) ที่แมปกับเนื้อหาของคีย์รีจิสทรีที่โหลดไว้ล่วงหน้าโดยเคอร์เนลจาก "ไฮฟ์" ที่จัดเก็บไว้ หรือกับเนื้อหาของซับคีย์ภายในคีย์รูทอื่น หรือแมปกับบริการหรือ DLL ที่ลงทะเบียนไว้ซึ่งให้สิทธิ์ในการเข้าถึงซับคีย์และค่าที่บรรจุอยู่ภายใน
ตัวอย่างเช่นHKEYอ้างอิงถึงคีย์ย่อย "Windows" ของคีย์ย่อย "Microsoft" ของคีย์ย่อย "Software" ของคีย์ราก HKEY_LOCAL_MACHINE
มีคีย์รากที่กำหนดไว้ล่วงหน้าเจ็ดคีย์ ซึ่งตั้งชื่อตามแฮนเดิลคงที่ที่กำหนดไว้ใน Win32 API หรือโดยคำย่อที่มีความหมายเหมือนกัน (ขึ้นอยู่กับแอปพลิเคชัน): [ 4 ]
- HKEY_LOCAL_MACHINEหรือHKLM
- HKEY_CURRENT_CONFIGหรือHKCC
- HKEY_CLASSES_ROOTหรือHKCR
- HKEY_CURRENT_USERหรือHKCU
- HKEY_USERSหรือHKU
- HKEY_PERFORMANCE_DATA (มีเฉพาะใน Windows NT แต่ไม่ปรากฏใน Windows Registry Editor) [ 5 ]
- HKEY_DYN_DATA (มีเฉพาะใน Windows 9x และสามารถมองเห็นได้ใน Windows Registry Editor)
เช่นเดียวกับไฟล์และบริการอื่นๆ ใน Windows คีย์รีจิสทรีทั้งหมดอาจถูกจำกัดโดยรายการควบคุมการเข้าถึง (ACL) ขึ้นอยู่กับสิทธิ์ของผู้ใช้ หรือโทเค็นความปลอดภัยที่แอปพลิเคชันได้รับ หรือนโยบายความปลอดภัยของระบบที่บังคับใช้โดยระบบ (ข้อจำกัดเหล่านี้อาจถูกกำหนดไว้ล่วงหน้าโดยระบบเอง และกำหนดค่าโดยผู้ดูแลระบบในเครื่องหรือผู้ดูแลระบบโดเมน) ผู้ใช้ โปรแกรม บริการ หรือระบบระยะไกลที่แตกต่างกันอาจเห็นเพียงบางส่วนของลำดับชั้น หรือลำดับชั้นที่แตกต่างกันจากคีย์รากเดียวกัน
ค่ารีจิสทรีคือคู่ชื่อ/ข้อมูลที่จัดเก็บไว้ภายในคีย์ ค่ารีจิสทรีจะถูกอ้างอิงแยกต่างหากจากคีย์รีจิสทรี แต่ละค่ารีจิสทรีที่จัดเก็บอยู่ในคีย์รีจิสทรีจะมีชื่อที่ไม่ซ้ำกัน โดยที่ตัวพิมพ์ใหญ่หรือเล็กไม่สำคัญ ฟังก์ชัน Windows APIที่สอบถามและจัดการค่ารีจิสทรีจะใช้ชื่อค่าแยกต่างหากจากเส้นทางคีย์หรือแฮนเดิลที่ระบุคีย์หลัก ค่ารีจิสทรีอาจมีเครื่องหมายแบ็กสแลชในชื่อได้ แต่การทำเช่นนั้นจะทำให้ยากต่อการแยกแยะออกจากเส้นทางคีย์เมื่อใช้ฟังก์ชัน Windows Registry API รุ่นเก่าบางฟังก์ชัน (ซึ่งการใช้งานนั้นถูกยกเลิกใน Win32 แล้ว)
คำศัพท์นี้ค่อนข้างทำให้เข้าใจผิด เนื่องจากคีย์รีจิสทรีแต่ละคีย์นั้นคล้ายกับอาร์เรย์แบบเชื่อมโยงซึ่งคำศัพท์มาตรฐานจะอ้างถึงส่วนชื่อของค่ารีจิสทรีแต่ละค่าว่าเป็น "คีย์" คำศัพท์เหล่านี้เป็นคำที่หลงเหลือมาจากรีจิสทรี 16 บิตใน Windows 3 ซึ่งคีย์รีจิสทรีไม่สามารถมีคู่ชื่อ/ข้อมูลใดๆ ได้ แต่จะมีเพียงค่าที่ไม่มีชื่อเพียงค่าเดียว (ซึ่งต้องเป็นสตริง) ในแง่นี้ รีจิสทรีของ Windows 3 จึงเหมือนกับอาร์เรย์แบบเชื่อมโยงเดี่ยว ซึ่งคีย์ (ในความหมายของทั้ง 'คีย์รีจิสทรี' และ 'คีย์อาร์เรย์แบบเชื่อมโยง') ก่อให้เกิดลำดับชั้น และค่ารีจิสทรีทั้งหมดเป็นสตริง เมื่อมีการสร้างรีจิสทรี 32 บิต ความสามารถเพิ่มเติมในการสร้างค่าที่มีชื่อหลายค่าต่อคีย์ก็ถูกสร้างขึ้น และความหมายของชื่อก็ถูกบิดเบือนไปบ้าง[ 6 ]เพื่อให้เข้ากันได้กับพฤติกรรมก่อนหน้านี้ คีย์รีจิสทรีแต่ละคีย์อาจมีค่า "เริ่มต้น" ซึ่งชื่อเป็นสตริงว่าง
แต่ละค่าสามารถจัดเก็บข้อมูลใดๆ ก็ได้ที่มีความยาวและการเข้ารหัสที่แปรผันได้ แต่จะเชื่อมโยงกับประเภทเชิงสัญลักษณ์ (กำหนดเป็นค่าคงที่ตัวเลข) ที่กำหนดวิธีการแยกวิเคราะห์ข้อมูลนี้ ประเภทมาตรฐานคือ: [ 7 ]
| รหัสประเภท | ชื่อประเภทเชิงสัญลักษณ์ | ความหมายและการเข้ารหัสข้อมูลที่จัดเก็บไว้ในค่ารีจิสทรี |
|---|---|---|
| 0 | รีจิ_ไม่มี | ไม่มีประเภท (ค่าที่จัดเก็บไว้ หากมี) |
| 1 | รีจี_เอสซี | ค่าสตริงซึ่งโดยปกติจะถูกจัดเก็บและแสดงผลใน รูป แบบ UTF-16 LE (เมื่อใช้ฟังก์ชัน Win32 API เวอร์ชัน Unicode) โดยทั่วไปจะลงท้ายด้วยอักขระ NUL |
| 2 | รีจิ_เอ็กซ์แพนด์_เอสซี | ค่าสตริงที่ "ขยายได้" ซึ่งสามารถบรรจุตัวแปรสภาพแวดล้อมได้ โดยปกติจะจัดเก็บและแสดงผลในรูปแบบ UTF-16LE และมักปิดท้ายด้วยอักขระ NUL |
| 3 | รีจิสเตอร์ไบนารี | ข้อมูลไบนารี (ข้อมูลใดๆ ก็ได้) |
| 4 | รีจิสเตอร์ ดีเวิร์ด / รีจิสเตอร์ ดีเวิร์ด ลิตเติลเอนเดียน | ค่าDWORD คือ จำนวนเต็ม 32 บิตที่ไม่มีเครื่องหมาย (ตัวเลขระหว่าง 0 ถึง 4,294,967,295 [2 32 – 1] ) (little- endian ) |
| 5 | รีจิสเตอร์ ดีเวิร์ด บิ๊กเอนเดียน | ค่าDWORD คือ จำนวนเต็ม 32 บิตที่ไม่มีเครื่องหมาย (ตัวเลขระหว่าง 0 ถึง 4,294,967,295 [2 32 – 1] ) (big- endian ) |
| 6 | รีจิสลิงก์ | ลิงก์เชิงสัญลักษณ์ (ยูนิโคด) ไปยังคีย์รีจิสทรีอื่น โดยระบุคีย์รากและเส้นทางไปยังคีย์เป้าหมาย |
| 7 | รีจิสเตอร์มัลติสท์ | ค่าสตริงหลายตัว ซึ่งเป็นรายการเรียงลำดับของสตริง ที่ไม่ว่างเปล่า โดยปกติจะถูกจัดเก็บและแสดงในรูปแบบ Unicode โดยแต่ละสตริงจะสิ้นสุดด้วยอักขระว่าง และโดยปกติรายการจะสิ้นสุดด้วยอักขระว่างตัวที่สอง[ 8 ] |
| 8 | รายการทรัพยากรลงทะเบียน | รายการทรัพยากร (ใช้สำหรับการระบุและการกำหนดค่าฮาร์ดแวร์ แบบ Plug-n-Play ) |
| 9 | คำอธิบายทรัพยากรแบบเต็ม | ตัวอธิบายทรัพยากร (ใช้โดยการระบุและการกำหนดค่าฮาร์ดแวร์ Plug-n-Play ) |
| 10 | รายการความต้องการทรัพยากร REG | รายการความต้องการทรัพยากร (ใช้สำหรับการระบุและการกำหนดค่าฮาร์ดแวร์ แบบ Plug-n-Play ) |
| 11 | รีจิสเตอร์คิวเวิร์ด / รีจิสเตอร์คิวเวิร์ดลิตเติลเอนเดียน | ค่าQWORDซึ่งเป็นจำนวนเต็ม 64 บิต (ไม่ว่าจะเป็น big-endian หรือ little-endian หรือไม่ระบุ) (แนะนำในWindows 2000 ) [ 9 ] |
คีย์รูท
โดยทั่วไปแล้วคีย์ที่ระดับรากของฐานข้อมูลแบบลำดับชั้นจะถูกตั้งชื่อตามคำจำกัดความของWindows APIซึ่งทั้งหมดเริ่มต้นด้วยHKEY [ 2 ]คีย์เหล่านี้มักจะย่อเป็นชื่อย่อสามหรือสี่ตัวอักษรที่ขึ้นต้นด้วย "HK" (เช่นHKCUและHKLM ) ในทางเทคนิคแล้ว คีย์เหล่านี้เป็นแฮนเดิลที่กำหนดไว้ล่วงหน้า (ด้วยค่าคงที่ที่ทราบ) สำหรับคีย์เฉพาะที่เก็บรักษาไว้ในหน่วยความจำ หรือจัดเก็บไว้ในไฟล์ฮิฟที่จัดเก็บไว้ในระบบไฟล์ภายในเครื่องและโหลดโดยเคอร์เนลของระบบเมื่อบูตเครื่อง จากนั้นแชร์ (ด้วยสิทธิ์การเข้าถึงต่างๆ) ระหว่างกระบวนการทั้งหมดที่ทำงานบนระบบภายในเครื่อง หรือโหลดและแมปในกระบวนการทั้งหมดที่เริ่มต้นในเซสชันของผู้ใช้เมื่อผู้ใช้เข้าสู่ระบบ
โหนด HKEY_LOCAL_MACHINE ( ข้อมูลการกำหนดค่าเฉพาะเครื่องโลคัล) และHKEY_CURRENT_USER (ข้อมูลการกำหนดค่าเฉพาะผู้ใช้) มีโครงสร้างที่คล้ายคลึงกัน โดยทั่วไปแอปพลิเคชันของผู้ใช้จะค้นหาการตั้งค่าโดยตรวจสอบในHKEY_CURRENT_USER\Software\ชื่อผู้จำหน่าย\ชื่อแอปพลิเคชัน\เวอร์ชัน\ชื่อการตั้งค่า ก่อน และหากไม่พบการตั้งค่า ก็จะค้นหาในตำแหน่งเดียวกันภายใต้ คีย์ HKEY_LOCAL_MACHINEแทน อย่างไรก็ตาม อาจมีการดำเนินการตรงกันข้ามสำหรับ การตั้งค่า นโยบาย ที่บังคับใช้โดยผู้ดูแลระบบ ซึ่ง HKLM อาจมีลำดับความสำคัญเหนือกว่าHKCUโปรแกรมWindows Logoมีข้อกำหนดเฉพาะสำหรับตำแหน่งที่สามารถจัดเก็บข้อมูลผู้ใช้ประเภทต่างๆ ได้ และต้องปฏิบัติตามแนวคิดของสิทธิ์ขั้นต่ำสุดเพื่อไม่ให้จำเป็นต้องเข้าถึงระดับผู้ดูแลระบบเพื่อใช้แอปพลิเคชัน[ a ] [ 10 ]
HKEY_LOCAL_MACHINE (HKLM)
HKEY_LOCAL_MACHINEซึ่งย่อว่าHKLM จะเก็บการตั้งค่าที่เฉพาะเจาะจงสำหรับคอมพิวเตอร์เครื่องโลคัล[ 11 ]
คีย์ที่HKLM ค้นพบ นั้นไม่ได้ถูกจัดเก็บไว้ในดิสก์ แต่ถูกเก็บรักษาไว้ในหน่วยความจำโดยเคอร์เนลของระบบเพื่อใช้ในการแมปซับคีย์อื่นๆ ทั้งหมด แอปพลิเคชันไม่สามารถสร้างซับคีย์เพิ่มเติมได้ ใน Windows NT คีย์นี้ประกอบด้วยซับคีย์สี่ตัว ได้แก่SAM , SECURITY , SYSTEMและSOFTWAREซึ่งจะถูกโหลดเมื่อบูตเครื่องจากไฟล์ที่เกี่ยวข้องซึ่งอยู่ใน โฟลเดอร์ %SystemRoot%\System32\config\ซับคีย์ที่ห้า คือ HARDWAREซึ่งเป็นคีย์ชั่วคราวและถูกสร้างขึ้นแบบไดนามิก ดังนั้นจึงไม่ได้ถูกจัดเก็บไว้ในไฟล์ (มันแสดงมุมมองของอุปกรณ์ Plug-and-Play ที่ตรวจพบในปัจจุบันทั้งหมด) ใน Windows Vista และเวอร์ชันที่สูงกว่า ซับคีย์ที่หกและเจ็ด ได้แก่COMPONENTSและBCDจะถูกแมปในหน่วยความจำโดยเคอร์เนลตามความต้องการและโหลดจาก%SystemRoot%\System32\config\COMPONENTSหรือจากข้อมูลการกำหนดค่าการบูต\boot\BCDบนพาร์ติชันระบบ
- โดยปกติแล้ว คีย์HKLM\SAMจะปรากฏเป็นช่องว่างสำหรับผู้ใช้ส่วนใหญ่ (เว้นแต่จะได้รับสิทธิ์การเข้าถึงจากผู้ดูแลระบบของระบบโลคัล หรือผู้ดูแลระบบของโดเมนที่จัดการระบบโลคัล) คีย์นี้ใช้สำหรับอ้างอิงฐานข้อมูล " Security Accounts Manager " (SAM) ทั้งหมดสำหรับทุกโดเมนที่ระบบโลคัลได้รับการอนุญาตหรือกำหนดค่าโดยผู้ดูแลระบบ (รวมถึงโดเมนโลคัลของระบบที่กำลังทำงานอยู่ ซึ่งฐานข้อมูล SAM จะถูกจัดเก็บไว้ในซับคีย์ที่มีชื่อว่า "SAM" เช่นกัน: จะมีการสร้างซับคีย์อื่นๆ เพิ่มเติมตามความจำเป็น หนึ่งซับคีย์สำหรับแต่ละโดเมนเสริม) ฐานข้อมูล SAM แต่ละฐานประกอบด้วยบัญชีที่สร้างไว้แล้วทั้งหมด (ส่วนใหญ่เป็นชื่อแทนกลุ่ม) และบัญชีที่กำหนดค่าไว้ (ผู้ใช้ กลุ่ม และชื่อแทน รวมถึงบัญชีผู้เยี่ยมชมและบัญชีผู้ดูแลระบบ) ที่สร้างและกำหนดค่าไว้ในโดเมนนั้นๆ สำหรับแต่ละบัญชีในโดเมนนั้น จะมีข้อมูลสำคัญ ได้แก่ ชื่อผู้ใช้ที่สามารถใช้ในการเข้าสู่ระบบโดเมนนั้น ตัวระบุผู้ใช้ที่ไม่ซ้ำกันภายในโดเมนแฮชเข้ารหัสของรหัสผ่านของผู้ใช้แต่ละคนสำหรับแต่ละโปรโตคอลการตรวจสอบสิทธิ์ ที่เปิดใช้ งาน ตำแหน่งที่จัดเก็บรีจิสทรีของผู้ใช้ แฟล็กสถานะต่างๆ (เช่น บัญชีสามารถแสดงรายการและมองเห็นได้ในหน้าจอพร้อมท์การเข้าสู่ระบบ) และรายการโดเมน (รวมถึงโดเมนท้องถิ่น) ที่บัญชีนั้นได้รับการกำหนดค่าไว้
- โดยปกติแล้ว คีย์HKLM\SECURITYจะว่างเปล่าสำหรับผู้ใช้ส่วนใหญ่ (เว้นแต่จะได้รับอนุญาตจากผู้ใช้ที่มีสิทธิ์ผู้ดูแลระบบ) และเชื่อมโยงกับฐานข้อมูลความปลอดภัยของโดเมนที่ผู้ใช้ปัจจุบันล็อกอินอยู่ (หากผู้ใช้ล็อกอินอยู่ในโดเมนระบบภายในเครื่อง คีย์นี้จะเชื่อมโยงกับรีจิสทรีฮิฟที่จัดเก็บโดยเครื่องภายในเครื่องและจัดการโดยผู้ดูแลระบบภายในเครื่อง หรือโดยบัญชี "System" ในตัวและโปรแกรมติดตั้ง Windows) เคอร์เนลจะเข้าถึงคีย์นี้เพื่ออ่านและบังคับใช้นโยบายความปลอดภัยที่ใช้กับผู้ใช้ปัจจุบันและแอปพลิเคชันหรือการดำเนินการทั้งหมดที่ผู้ใช้นี้ดำเนินการ นอกจากนี้ยังประกอบด้วยคีย์ย่อย "SAM" ซึ่งเชื่อมโยงแบบไดนามิกกับฐานข้อมูล SAM ของโดเมนที่ผู้ใช้ปัจจุบันล็อกอินอยู่
- โดยปกติแล้ว คีย์HKLM\SYSTEMจะสามารถเขียนได้เฉพาะผู้ใช้ที่มีสิทธิ์ผู้ดูแลระบบบนระบบโลคัลเท่านั้น คีย์นี้ประกอบด้วยข้อมูลเกี่ยวกับการตั้งค่าระบบ Windows ข้อมูลสำหรับตัวสร้างเลขสุ่มที่ปลอดภัย (RNG) รายชื่ออุปกรณ์ที่ติดตั้งอยู่ในปัจจุบันที่มีระบบไฟล์ ชุดควบคุมที่มีหมายเลขหลายชุด (เช่นHKLM\SYSTEM\ControlSet001 ) ซึ่งประกอบด้วยการกำหนดค่าทางเลือกสำหรับไดรเวอร์ฮาร์ดแวร์ระบบและบริการที่ทำงานบนระบบโลคัล (รวมถึงที่ใช้ในปัจจุบันและตัวสำรอง) คีย์ย่อย HKLM\SYSTEM\Selectซึ่งประกอบด้วยสถานะของชุดควบคุมเหล่านี้ และHKLM\SYSTEM\CurrentControlSetซึ่งเชื่อมโยงแบบไดนามิกในระหว่างการบูตกับชุดควบคุมที่ใช้อยู่ในระบบโลคัลในปัจจุบัน ชุดควบคุมที่กำหนดค่าแต่ละชุดประกอบด้วย:
- คีย์ ย่อย Enumที่แสดงรายการอุปกรณ์ Plug-and-Play ที่รู้จักทั้งหมด และเชื่อมโยงอุปกรณ์เหล่านั้นกับไดรเวอร์ระบบที่ติดตั้งไว้ (และจัดเก็บการกำหนดค่าเฉพาะอุปกรณ์ของไดรเวอร์เหล่านี้)
- คีย์ ย่อย Servicesแสดงรายการไดรเวอร์ระบบที่ติดตั้งทั้งหมด (พร้อมการกำหนดค่าที่ไม่เฉพาะเจาะจงกับอุปกรณ์ และการระบุอุปกรณ์ที่ไดรเวอร์เหล่านั้นถูกสร้างขึ้น) และโปรแกรมทั้งหมดที่ทำงานเป็นบริการ (วิธีการและเวลาที่สามารถเริ่มต้นโดยอัตโนมัติได้)
- คีย์ ย่อย ควบคุม (Control ) ที่ใช้จัดระเบียบไดรเวอร์ฮาร์ดแวร์และโปรแกรมต่างๆ ที่ทำงานเป็นบริการ รวมถึงการกำหนดค่าอื่นๆ ทั่วทั้งระบบ
- คีย์ ย่อย Hardware Profilesจะแสดงรายการโปรไฟล์ต่างๆ ที่ได้รับการปรับแต่ง (แต่ละโปรไฟล์มีค่าการตั้งค่า "ระบบ" หรือ "ซอฟต์แวร์" ที่ใช้ในการแก้ไขโปรไฟล์เริ่มต้น ไม่ว่าจะเป็นในไดรเวอร์และบริการของระบบ หรือในแอปพลิเคชัน) รวมถึง คีย์ย่อย Hardware Profiles\Currentซึ่งเชื่อมโยงแบบไดนามิกกับหนึ่งในโปรไฟล์เหล่านี้
- คีย์ย่อย HKLM \SOFTWAREประกอบด้วยซอฟต์แวร์และการตั้งค่า Windows (ในโปรไฟล์ฮาร์ดแวร์เริ่มต้น) โดยส่วนใหญ่จะถูกแก้ไขโดยโปรแกรมติดตั้งแอปพลิเคชันและระบบ คีย์ย่อยนี้จัดเรียงตามผู้จำหน่ายซอฟต์แวร์ (โดยมีคีย์ย่อยสำหรับแต่ละราย) แต่ยังประกอบด้วยคีย์ย่อย "Windows" สำหรับการตั้งค่าบางอย่างของส่วนติดต่อผู้ใช้ Windows คีย์ย่อย "Classes" ที่มีข้อมูลการเชื่อมโยงที่ลงทะเบียนทั้งหมดจากนามสกุลไฟล์ ประเภท MIME รหัสคลาสออบเจ็กต์ และรหัสอินเทอร์เฟซ (สำหรับ OLE, COM/DCOM และ ActiveX) ไปยังแอปพลิเคชันหรือ DLL ที่ติดตั้งซึ่งอาจจัดการประเภทเหล่านี้ในเครื่องโลคัล (อย่างไรก็ตาม การเชื่อมโยงเหล่านี้สามารถกำหนดค่าได้สำหรับผู้ใช้แต่ละราย ดูด้านล่าง) และคีย์ย่อย "Policies" (จัดเรียงตามผู้จำหน่ายเช่นกัน) สำหรับบังคับใช้นโยบายการใช้งานทั่วไปกับแอปพลิเคชันและบริการระบบ (รวมถึงที่เก็บใบรับรองส่วนกลางที่ใช้สำหรับการตรวจสอบสิทธิ์ การอนุญาต หรือการไม่อนุญาตให้ระบบหรือบริการระยะไกลที่ทำงานอยู่นอกโดเมนเครือข่ายท้องถิ่น)
- คีย์HKLM\SOFTWARE\Wow6432Nodeถูกใช้โดยแอปพลิเคชัน 32 บิตบนระบบปฏิบัติการ Windows 64 บิต และเทียบเท่ากับแต่แยกจากHKLM\SOFTWAREเส้นทางคีย์จะถูกนำเสนออย่างโปร่งใสแก่แอปพลิเคชัน 32 บิตโดยWoW64เป็นHKLM\SOFTWARE [ 12 ] (ในลักษณะเดียวกับที่แอปพลิเคชัน 64 บิตมองเห็น%SystemRoot%\Syswow64เป็น%SystemRoot%\System32 )
HKEY_CLASSES_ROOT (HKCR)
- HKEY_CLASSES_ROOTซึ่งย่อว่าHKCR ประกอบด้วยข้อมูลเกี่ยวกับแอปพลิเคชันที่ลงทะเบียนไว้ เช่นการเชื่อมโยงไฟล์และรหัสคลาสออบเจ็กต์OLE ซึ่งเชื่อมโยงกับแอปพลิเคชันที่ใช้ในการจัดการรายการเหล่านี้ บน Windows 2000ขึ้นไปHKCRเป็นการรวบรวมHKCU\Software\Classes ที่อิงตามผู้ใช้และ HKLM\Software\Classesที่อิงตามเครื่องหากค่าที่กำหนดมีอยู่ในทั้งสองคีย์ย่อยข้างต้น ค่าในHKCU\Software\Classesจะมีความสำคัญกว่า[ 13 ] การออกแบบนี้อนุญาตให้ลงทะเบียน ออบ เจ็กต์ COMได้ทั้งแบบเฉพาะเครื่องหรือเฉพาะผู้ใช้
HKEY_USERS (HKU)
- HKUหรือHKEY_USERSประกอบด้วยคีย์ย่อยที่สอดคล้องกับ คีย์ HKEY_CURRENT_USER สำหรับแต่ละโปรไฟล์ผู้ใช้ที่โหลดอยู่ในเครื่อง โดยปกติแล้ว ฮิฟ ของผู้ใช้จะถูกโหลดเฉพาะสำหรับผู้ใช้ที่ล็อกอินอยู่ในปัจจุบันเท่านั้น
HKEY_CURRENT_USER (HKCU)
- HKEY_CURRENT_USERซึ่งย่อว่าHKCU จะเก็บการตั้งค่าที่เฉพาะเจาะจงสำหรับผู้ใช้ที่เข้าสู่ระบบในปัจจุบัน[ 14 ]คีย์HKEY_CURRENT_USERเป็นลิงก์ไปยังซับคีย์ของHKEY_USERSที่สอดคล้องกับผู้ใช้ ข้อมูลเดียวกันสามารถเข้าถึงได้ในทั้งสองตำแหน่ง ซับคีย์เฉพาะที่อ้างอิงคือ(HKU)\(SID)\...โดยที่ (SID) สอดคล้องกับWindows SIDหากHKCUมีคำต่อท้ายต่อไปนี้(HKCU)\Software\Classes\...ก็จะสอดคล้องกับ(HKU)\(SID)_CLASSES\...กล่าวคือ สตริงคำต่อท้าย_CLASSESจะถูกเพิ่มต่อท้าย (SID)
- ในระบบ Windows NT การตั้งค่าของผู้ใช้แต่ละคนจะถูกจัดเก็บไว้ในไฟล์ของตนเองชื่อNTUSER.DATและUSRCLASS.DATภายในโฟลเดอร์ย่อย Documents and Settings ของตนเอง (หรือโฟลเดอร์ย่อย Users ใน Windows Vista และเวอร์ชันที่สูงกว่า) การตั้งค่าในไฟล์เหล่านี้จะติดตามผู้ใช้ที่มีโปรไฟล์แบบ Roamingไปยังเครื่องอื่น ๆ ด้วย
ข้อมูลประสิทธิภาพคีย์
- HKEY_PERFORMANCE_DATAให้ข้อมูลประสิทธิภาพการทำงานแบบเรียลไทม์ ซึ่งได้มาจากเคอร์เนลของ NT เอง หรือจากไดรเวอร์ โปรแกรม และบริการของระบบที่กำลังทำงานอยู่ ข้อมูลนี้ไม่ได้ถูกจัดเก็บไว้ในส่วนจัดเก็บข้อมูลใดๆ และไม่แสดงใน Registry Editor แต่สามารถมองเห็นได้ผ่านฟังก์ชันรีจิสทรีใน Windows API หรือในมุมมองที่เรียบง่ายผ่านแท็บประสิทธิภาพของ Task Manager (เฉพาะข้อมูลประสิทธิภาพบางส่วนในระบบโลคัล) หรือผ่านแผงควบคุมขั้นสูงกว่า (เช่น Performance Monitor หรือ Performance Analyzer ซึ่งอนุญาตให้รวบรวมและบันทึกข้อมูลเหล่านี้ รวมถึงจากระบบระยะไกล)
HKEY_DYN_DATA
- HKEY_DYN_DATAใช้ได้เฉพาะใน Windows 95, Windows 98และWindows MEเท่านั้น[ 15 ]ประกอบด้วยข้อมูลเกี่ยวกับอุปกรณ์ฮาร์ดแวร์ รวมถึงข้อมูล Plug and Play และสถิติประสิทธิภาพเครือข่าย ข้อมูลในฮิฟนี้ไม่ได้จัดเก็บไว้บนฮาร์ดไดรฟ์เช่นกัน ข้อมูล Plug and Play จะถูกรวบรวมและกำหนดค่าเมื่อเริ่มต้นระบบและจัดเก็บไว้ในหน่วยความจำ[ 16 ]
ลมพิษ
แม้ว่ารีจิสทรีจะนำเสนอตัวเองเป็นฐานข้อมูลลำดับชั้นแบบบูรณาการ แต่สาขาของรีจิสทรีนั้นจริง ๆ แล้วถูกจัดเก็บไว้ในไฟล์ดิสก์จำนวนหนึ่งที่เรียกว่าไฮฟ์ [ 17 ] (คำว่า ไฮฟ์ เป็นมุกตลกภายใน ) [ 18 ]
บางฮิฟเป็นฮิฟแบบชั่วคราวและไม่ได้จัดเก็บลงดิสก์เลย ตัวอย่างเช่น ฮิฟของสาขาที่เริ่มต้นที่HKLM\HARDWAREฮิฟนี้จะบันทึกข้อมูลเกี่ยวกับฮาร์ดแวร์ของระบบและจะถูกสร้างขึ้นทุกครั้งที่ระบบบูตและทำการตรวจจับฮาร์ดแวร์
การตั้งค่าส่วนบุคคลสำหรับผู้ใช้ในระบบจะถูกจัดเก็บไว้ในไฟล์บนดิสก์ (hive) ต่อผู้ใช้แต่ละราย ในระหว่างการเข้าสู่ระบบของผู้ใช้ ระบบจะโหลดไฟล์ hive ของผู้ใช้ภายใต้HKEY_USERSและตั้งค่า การอ้างอิงเชิงสัญลักษณ์ HKCUให้ชี้ไปยังผู้ใช้ปัจจุบัน ซึ่งช่วยให้แอปพลิเคชันสามารถจัดเก็บ/เรียกใช้การตั้งค่าสำหรับผู้ใช้ปัจจุบันได้โดยปริยายภายใต้ HKCU
ไม่ใช่ว่าทุกฮิฟจะถูกโหลดพร้อมกันในแต่ละครั้ง ในระหว่างการบูต ระบบจะโหลดเฉพาะฮิฟจำนวนน้อยที่สุดเท่านั้น และหลังจากนั้น ฮิฟจะถูกโหลดเมื่อระบบปฏิบัติการเริ่มต้นทำงาน เมื่อผู้ใช้ล็อกอิน หรือเมื่อใดก็ตามที่แอปพลิเคชันโหลดฮิฟนั้นอย่างชัดเจน
ตำแหน่งไฟล์
ข้อมูลรีจิสทรีถูกจัดเก็บไว้ในไฟล์หลายไฟล์ ซึ่งโดยทั่วไปแล้วจะถูกซ่อนไว้จาก API โหมดผู้ใช้ที่ใช้ในการจัดการข้อมูลภายในรีจิสทรี ขึ้นอยู่กับเวอร์ชันของ Windows ไฟล์และตำแหน่งที่ตั้งของไฟล์เหล่านี้จะแตกต่างกัน แต่ทั้งหมดจะอยู่บนเครื่องโลคัล ตำแหน่งของไฟล์รีจิสทรีระบบใน Windows NT คือ%SystemRoot%\System32\config\ ส่วน รีจิสทรีHKEY_CURRENT_USERเฉพาะผู้ใช้ จะถูกจัดเก็บไว้ในไฟล์ Ntuser.datภายในโปรไฟล์ผู้ใช้ จะมีไฟล์นี้หนึ่งไฟล์ต่อผู้ใช้หนึ่งคน หากผู้ใช้มีโปรไฟล์แบบโรมมิ่งไฟล์นี้จะถูกคัดลอกไปยังและจากเซิร์ฟเวอร์เมื่อออกจากระบบและเข้าสู่ระบบตามลำดับ ไฟล์รีจิสทรีเฉพาะผู้ใช้ไฟล์ที่สองชื่อUsrClass.datจะมีรายการรีจิสทรี COM และโดยค่าเริ่มต้นจะไม่โรมมิ่ง
วินโดวส์ เอ็นที
ระบบ Windows NT จัดเก็บรีจิสทรีในรูปแบบไฟล์ไบนารี ซึ่งสามารถส่งออก โหลด และยกเลิกการโหลดได้โดยใช้ Registry Editor ในระบบปฏิบัติการเหล่านี้ ไฟล์รีจิสทรีของระบบต่อไปนี้จะถูกจัดเก็บไว้ใน%SystemRoot%\System32\config\ :
- Sam – HKEY_LOCAL_MACHINE\SAM
- การรักษาความปลอดภัย – HKEY_LOCAL_MACHINE\SECURITY
- ซอฟต์แวร์ – HKEY_LOCAL_MACHINE\SOFTWARE
- ระบบ – HKEY_LOCAL_MACHINE\SYSTEM
- ค่าเริ่มต้น – HKEY_USERS\.DEFAULT
- Userdiff – ไม่เกี่ยวข้องกับ hive ใช้เฉพาะเมื่ออัปเกรดระบบปฏิบัติการ[ 19 ]
ไฟล์ต่อไปนี้จะถูกจัดเก็บไว้ในโฟลเดอร์โปรไฟล์ของผู้ใช้แต่ละคน:
- %USERPROFILE%\Ntuser.dat – HKEY_USERS\< User SID > (เชื่อมโยงโดยHKEY_CURRENT_USER )
สำหรับ Windows 2000, Server 2003 และ Windows XP จะมีการใช้ไฟล์เฉพาะผู้ใช้เพิ่มเติมต่อไปนี้สำหรับการเชื่อมโยงไฟล์และข้อมูล COM:
- %USERPROFILE%\Local Settings\Application Data\Microsoft\Windows\Usrclass.dat (เส้นทางถูกแปลเป็นภาษาท้องถิ่น) – HKEY_USERS\<User SID>_Classes ( HKEY_CURRENT_USER\Software\Classes )
สำหรับ Windows Vista และเวอร์ชันที่ใหม่กว่า เส้นทางจะถูกเปลี่ยนเป็น:
- %USERPROFILE%\AppData\Local\Microsoft\Windows\Usrclass.dat (เส้นทางไม่ได้รับการแปล) ชื่อเรียกแทน%LocalAppData%\Microsoft\Windows\Usrclass.dat – HKEY_USERS\<User SID>_Classes ( HKEY_CURRENT_USER\Software\Classes )
Windows 2000 จะเก็บสำเนาสำรองของรีจิสทรีฮิฟ ( .ALT ) และพยายามสลับไปใช้เมื่อตรวจพบความเสียหาย[ 20 ] Windows XP และ Windows Server 2003 ไม่เก็บ รีจิสทรีฮิฟ System.altเนื่องจากNTLDRใน Windows เวอร์ชันเหล่านั้นสามารถประมวลผล ไฟล์ System.logเพื่ออัปเดตรีจิสทรีฮิฟ System ที่ไม่สอดคล้องกันระหว่างการปิดระบบหรือการขัดข้องได้ นอกจากนี้ โฟลเดอร์ %SystemRoot%\Repairยังมีสำเนาของรีจิสทรีฮิฟของระบบที่สร้างขึ้นหลังจากการติดตั้งและการเริ่มต้นใช้งาน Windows ครั้งแรกที่สำเร็จ
ไฟล์ข้อมูลรีจิสทรีแต่ละไฟล์จะมีไฟล์ที่เกี่ยวข้องซึ่งมีนามสกุล ".log" ซึ่งทำหน้าที่เป็นบันทึกธุรกรรมที่ใช้เพื่อให้แน่ใจว่าการอัปเดตที่ถูกขัดจังหวะจะสามารถดำเนินการให้เสร็จสมบูรณ์ได้เมื่อเริ่มต้นระบบครั้งถัดไป[ 21 ] ภายใน ไฟล์รีจิสทรีจะถูกแบ่งออกเป็น "bin" ขนาด 4 kBซึ่งประกอบด้วยชุดของ "cell" [ 21 ]
วินโดวส์ 9x
ไฟล์รีจิสทรีจะถูกจัดเก็บไว้ใน%WINDIR%ภายใต้ชื่อUSER.DATและSYSTEM.DAT โดยมี CLASSES.DATเพิ่มเข้ามา ใน Windows ME นอกจากนี้ โปรไฟล์ผู้ใช้แต่ละโปรไฟล์ (หากเปิดใช้งานโปรไฟล์) จะมีไฟล์ USER.DATของตนเองซึ่งอยู่ในไดเร็กทอรีโปรไฟล์ของผู้ใช้ใน%WINDIR%\Profiles\<Username> \
วินโดวส์ 3.11
ไฟล์รีจิสทรีเพียงไฟล์เดียวชื่อREG.DATและถูกจัดเก็บไว้ใน%WINDIR %
วินโดวส์ 10 มือถือ
ในการเข้าถึงไฟล์รีจิสทรี อุปกรณ์จะต้องถูกตั้งค่าให้อยู่ในโหมดพิเศษโดยใช้วิธีใดวิธีหนึ่งต่อไปนี้:
- WpInternals (ตั้งค่าอุปกรณ์ให้อยู่ในโหมดแฟลช)
- เครื่องมือ InterOp (ติดตั้งพาร์ติชั่น MainOS ด้วย MTP)
หากวิธีการข้างต้นวิธีใดวิธีหนึ่งได้ผล ไฟล์รีจิสทรีของอุปกรณ์จะอยู่ที่{Phone}\EFIESP\Windows\System32\ config
การแก้ไข
ผู้แก้ไขรีจิสทรี
รีจิสทรีประกอบด้วยข้อมูลการกำหนดค่าที่สำคัญสำหรับระบบปฏิบัติการ สำหรับแอปพลิเคชันที่ติดตั้ง รวมถึงการตั้งค่าส่วนบุคคลสำหรับผู้ใช้และแอปพลิเคชันแต่ละราย การเปลี่ยนแปลงการกำหนดค่าระบบปฏิบัติการในรีจิสทรีอย่างไม่ระมัดระวังอาจทำให้เกิดความเสียหายที่ไม่สามารถแก้ไขได้ ดังนั้นโดยปกติแล้วจะมีเพียงโปรแกรมติดตั้งเท่านั้นที่ทำการเปลี่ยนแปลงฐานข้อมูลรีจิสทรีระหว่างการติดตั้ง/การกำหนดค่าและการลบ หากผู้ใช้ต้องการแก้ไขรีจิสทรีด้วยตนเอง Microsoft แนะนำให้ทำการสำรองข้อมูลรีจิสทรีไว้ก่อนที่จะทำการเปลี่ยนแปลง[ 22 ]เมื่อลบโปรแกรมออกจากแผงควบคุม โปรแกรมอาจไม่ได้ถูกลบออกอย่างสมบูรณ์ และในกรณีที่เกิดข้อผิดพลาดหรือความผิดปกติที่เกิดจากการอ้างอิงถึงโปรแกรมที่หายไป ผู้ใช้อาจต้องตรวจสอบภายในไดเร็กทอรีต่างๆ เช่น ไฟล์โปรแกรม ด้วยตนเอง หลังจากนั้น ผู้ใช้อาจต้องลบการอ้างอิงใดๆ ถึงโปรแกรมที่ไม่ได้ติดตั้งในรีจิสทรีด้วยตนเอง ซึ่งโดยปกติจะทำโดยใช้RegEdit.exe [ 23 ] การแก้ไขรีจิสทรีบางครั้งจำเป็นเมื่อต้องแก้ไขปัญหาเฉพาะของ Windows เช่น ปัญหาเมื่อเข้าสู่ระบบโดเมนสามารถแก้ไขได้โดยการแก้ไขรีจิสทรี[ 24 ]
สามารถแก้ไขรีจิสทรีของ Windows ได้ด้วยตนเองโดยใช้โปรแกรมต่างๆ เช่นRegEdit.exeแม้ว่าเครื่องมือเหล่านี้จะไม่แสดงข้อมูลเมตาบางส่วนของรีจิสทรี เช่น วันที่แก้ไขล่าสุดก็ตาม
โปรแกรมแก้ไขรีจิสทรีสำหรับระบบปฏิบัติการตระกูล 3.1/95 คือRegEdit.exeและสำหรับ Windows NT คือRegEdt32.exeโดยฟังก์ชันการทำงานได้ถูกรวมเข้าด้วยกันใน Windows XP นอกจากนี้ยังมีเครื่องมือเสริมและเครื่องมือจากผู้พัฒนาภายนอกที่คล้ายกับRegEdit.exeสำหรับ Windows CE หลายเวอร์ชัน
โปรแกรมแก้ไขรีจิสทรีช่วยให้ผู้ใช้สามารถดำเนินการฟังก์ชันต่อไปนี้ได้:
- การสร้าง การจัดการ การเปลี่ยนชื่อ[ 25 ]และการลบคีย์รีจิสทรี คีย์ย่อย ค่า และข้อมูลค่า
- การนำเข้าและส่งออก ไฟล์ .REGการส่งออกข้อมูลในรูปแบบไบนารีไฮฟ์
- การโหลด การจัดการ และการยกเลิกการโหลดไฟล์รูปแบบรีจิสทรีไฮฟ (สำหรับระบบ Windows NT เท่านั้น)
- การตั้งค่าสิทธิ์ตามACL (สำหรับระบบ Windows NT เท่านั้น)
- การบันทึกคีย์รีจิสทรีที่ผู้ใช้เลือกเป็นรายการโปรด
- การค้นหาสตริงเฉพาะในชื่อคีย์ ชื่อค่า และข้อมูลค่า
- การแก้ไขรีจิสทรีจากระยะไกลบนคอมพิวเตอร์เครื่องอื่นในเครือข่าย
ไฟล์ .REG
ไฟล์ .REG (หรือที่รู้จักกันในชื่อรายการลงทะเบียน) เป็นไฟล์ข้อความที่อ่านได้ง่ายสำหรับมนุษย์ ใช้สำหรับส่งออกและนำเข้าส่วนต่างๆ ของรีจิสทรีโดยใช้ ไวยากรณ์แบบ INI ไฟล์ . REGมีสองเวอร์ชันหลัก:
- ไฟล์ REG ของ Windows 9xและ NT 4.0 เป็น แบบ ANSIโดยเริ่มต้นด้วยสตริงREGEDIT4 [ 26 ]
- ไฟล์ REG ของ Windows 2000 และเวอร์ชันที่ใหม่กว่านั้นใช้Unicodeโดยจะเริ่มต้นด้วยข้อความ " Windows Registry Editor Version 5.00 "
ไฟล์ .REGในรูปแบบ Windows 9x สามารถนำเข้าโดย Windows 2000 และเวอร์ชันที่ใหม่กว่าได้[ 26 ]ระบบเวอร์ชันที่ใหม่กว่าเหล่านี้ยังอนุญาตให้ส่งออก ไฟล์ .REGในรูปแบบ Windows 9x/NT ได้อีกด้วย
ข้อมูลจะถูกจัดเก็บใน ไฟล์ .REGโดยใช้ไวยากรณ์ดังต่อไปนี้: [ 26 ]
[< ชื่อ Hive>\< ชื่อคีย์>\< ชื่อคีย์ย่อย>] "ชื่อค่า" = <ประเภทค่า>:<ข้อมูลค่า>ค่าเริ่มต้นของคีย์สามารถแก้ไขได้โดยใช้เครื่องหมาย @แทน "ชื่อค่า":
[< ชื่อ Hive>\< ชื่อคีย์>\< ชื่อคีย์ย่อย>] @ = <ประเภทค่า>:<ข้อมูลค่า>ค่าสตริงไม่จำเป็นต้องมี<ประเภทค่า > (ดูตัวอย่าง) แต่เครื่องหมายแบ็กสแลช ( \ ) ต้องเขียนเป็นแบ็กสแลชคู่ ( \\ ) และเครื่องหมายอัญประกาศ ( " ) ต้องเขียนเป็นแบ็กสแลช-อัญประกาศ ( \" ) (ข้อกำหนดสำหรับการหลีกเลี่ยงไม่สอดคล้องกันทั้งหมด: ไฟล์ที่มีสตริงที่มีแบ็กสแลชนำหน้าโดยไม่ได้หลีกเลี่ยงมีอยู่จริงและระบบยอมรับสำหรับการนำเข้า) [ 27 ]
ตัวอย่างเช่น หากต้องการเพิ่มค่า "Value A", "Value B" เป็นต้น ลงใน คีย์ HKLM\SOFTWARE\Foobar :
โปรแกรมแก้ไขรีจิสทรีของ Windows เวอร์ชัน 5.00 [ HKEY_LOCAL_MACHINE \SOFTWARE\Foobar] "ค่า A" = "<ข้อมูลค่าสตริงที่มีอักขระหลีก>" "ค่า B" = hex:<ข้อมูลไบนารี (ในรูปแบบรายการค่าเลขฐานสิบหกที่คั่นด้วยเครื่องหมายจุลภาค)> "ค่า C" = dword:<ค่าจำนวนเต็ม DWORD> "ค่า D" = hex(0):<REG_NONE (ในรูปแบบรายการค่าเลขฐานสิบหกที่คั่นด้วยเครื่องหมายจุลภาค)> "ค่า E" = hex(1):<REG_SZ (ในรูปแบบรายการค่าเลขฐานสิบหกที่คั่นด้วยเครื่องหมายจุลภาคซึ่งแสดงถึงสตริง UTF-16LE ที่ลงท้ายด้วย NUL)> "ค่า F" = hex(2):<ข้อมูลค่าสตริงที่ขยายได้ (ในรูปแบบรายการค่าเลขฐานสิบหกที่คั่นด้วยเครื่องหมายจุลภาคซึ่งแสดงถึงสตริง UTF-16LE ที่ลงท้ายด้วย NUL)> "ค่า G" = hex(3):<ข้อมูลไบนารี (ในรูปแบบรายการค่าเลขฐานสิบหกที่คั่นด้วยเครื่องหมายจุลภาค)> ; เท่ากับ "ค่า B" "ค่า H" = hex(4):<ค่า DWORD (เป็นรายการค่าเลขฐานสิบหก 4 ค่าที่คั่นด้วยเครื่องหมายจุลภาค ในลำดับไบต์แบบ little endian)> "ค่า I" = hex(5):<ค่า DWORD (เป็นรายการค่าเลขฐานสิบหก 4 ค่าที่คั่นด้วยเครื่องหมายจุลภาค ในลำดับไบต์แบบ big endian)> "ค่า J" = hex(7):<ข้อมูลค่าสตริงหลายตัว (เป็นรายการค่าเลขฐานสิบหกที่คั่นด้วยเครื่องหมายจุลภาค ซึ่งแสดงถึงสตริง UTF-16LE ที่ลงท้ายด้วย NUL)> "ค่า K" = hex(8):<REG_RESOURCE_LIST (เป็นรายการค่าเลขฐานสิบหกที่คั่นด้วยเครื่องหมายจุลภาค)> "ค่า L" = hex(a):<REG_RESOURCE_REQUIREMENTS_LIST (เป็นรายการค่าเลขฐานสิบหกที่คั่นด้วยเครื่องหมายจุลภาค)> "ค่า M" = hex(b):<ค่า QWORD (ในรูปแบบรายการค่าเลขฐานสิบหก 8 ค่า คั่นด้วยเครื่องหมายจุลภาค เรียงลำดับไบต์แบบ little endian)>สามารถเพิ่ม/ผสาน ข้อมูลจาก ไฟล์ .REGเข้ากับรีจิสทรีได้โดยการดับเบิ้ลคลิกไฟล์เหล่านั้น หรือใช้ตัวเลือก /s ในบรรทัดคำสั่ง นอกจากนี้ ไฟล์ REGยังสามารถใช้เพื่อลบข้อมูลรีจิสทรีได้อีกด้วย
ในการลบคีย์ (และคีย์ย่อย ค่า และข้อมูลทั้งหมด) จะต้องนำหน้าชื่อคีย์ด้วยเครื่องหมายลบ ( - ) [ 26 ]
ตัวอย่างเช่น หากต้องการลบ คีย์ HKLM\SOFTWARE\Foobar (และคีย์ย่อย ค่า และข้อมูลทั้งหมด)
[ - HKEY_LOCAL_MACHINE \SOFTWARE\Foobar]ในการลบค่า (และข้อมูล) ค่าที่จะถูกลบจะต้องมีเครื่องหมายลบ ( - ) ต่อท้ายเครื่องหมายเท่ากับ ( {{{1}}} ) [ 26 ]
ตัวอย่างเช่น หากต้องการลบเฉพาะค่า "Value A" และ "Value B" (และข้อมูลของค่าเหล่านั้น) ออกจาก คีย์ HKLM\SOFTWARE\Foobar :
[ HKEY_LOCAL_MACHINE \SOFTWARE\Foobar] "ค่า A" =- "ค่า B" =-หากต้องการลบเฉพาะค่าเริ่มต้นของคีย์HKLM\SOFTWARE\Foobar (และข้อมูลในคีย์):
[ HKEY_LOCAL_MACHINE \SOFTWARE\Foobar] @ =-บรรทัดที่ขึ้นต้นด้วยเครื่องหมายเซมิโคลอนถือเป็นข้อความแสดงความคิดเห็น:
นี่คือข้อความแสดงความคิดเห็น สามารถวางไว้ในส่วนใดก็ได้ของไฟล์ .reg [ HKEY_LOCAL_MACHINE \SOFTWARE\Foobar] "Value" = "ตัวอย่างข้อความ"นโยบายกลุ่ม
นโยบายกลุ่มของ Windows สามารถเปลี่ยนแปลงค่าคีย์รีจิสทรีสำหรับเครื่องจำนวนมากหรือผู้ใช้แต่ละรายตามนโยบายได้ เมื่อนโยบายมีผลบังคับใช้ครั้งแรกกับเครื่องหรือผู้ใช้แต่ละราย ค่ารีจิสทรีที่ระบุไว้ในนโยบายจะถูกนำไปใช้กับค่าการตั้งค่าของเครื่องหรือผู้ใช้
Windows จะค้นหานโยบายที่อัปเดตแล้วและนำไปใช้เป็นระยะ โดยทั่วไปทุก 90 นาที[ 28 ]
นโยบายจะกำหนด ขอบเขตว่านโยบายนั้นจะใช้บังคับกับเครื่องคอมพิวเตอร์และผู้ใช้รายใดบ้าง การที่เครื่องคอมพิวเตอร์หรือผู้ใช้รายใดอยู่ในขอบเขตของนโยบายหรือไม่นั้น จะถูกกำหนดโดยชุดของกฎ ซึ่งสามารถกรองได้ตามตำแหน่งของเครื่องคอมพิวเตอร์หรือบัญชีผู้ใช้ในไดเร็กทอรีขององค์กร บัญชีผู้ใช้หรือบัญชีเครื่องคอมพิวเตอร์เฉพาะ หรือกลุ่มความปลอดภัย นอกจากนี้ยังสามารถตั้งค่ากฎขั้นสูงได้โดยใช้ การแสดงออกของ Windows Management Instrumentationกฎดังกล่าวสามารถกรองตามคุณสมบัติ เช่น ชื่อผู้ผลิตคอมพิวเตอร์ สถาปัตยกรรม CPU ซอฟต์แวร์ที่ติดตั้ง หรือเครือข่ายที่เชื่อมต่ออยู่
ตัวอย่างเช่น ผู้ดูแลระบบสามารถสร้างนโยบายที่มีชุดการตั้งค่ารีจิสทรีชุดหนึ่งสำหรับเครื่องในแผนกบัญชี และนโยบายที่มีชุดการตั้งค่ารีจิสทรีอีกชุดหนึ่ง (แบบล็อกดาวน์) สำหรับเครื่องคีออสก์ในพื้นที่สำหรับผู้เยี่ยมชม เมื่อเครื่องถูกย้ายจากขอบเขตหนึ่งไปยังอีกขอบเขตหนึ่ง (เช่น เปลี่ยนชื่อหรือย้ายไปยังหน่วยงานอื่น) นโยบายที่ถูกต้องจะถูกนำไปใช้โดยอัตโนมัติ เมื่อมีการเปลี่ยนแปลงนโยบาย นโยบายนั้นจะถูกนำไปใช้กับเครื่องทั้งหมดที่อยู่ในขอบเขตนั้นโดยอัตโนมัติ
นโยบายนี้ได้รับการแก้ไขผ่านเทมเพลตการบริหารจัดการหลายแบบ ซึ่งมีอินเทอร์เฟซผู้ใช้สำหรับการเลือกและเปลี่ยนแปลงการตั้งค่า ชุดเทมเพลตการบริหารจัดการนี้สามารถขยายได้ และแพ็กเกจซอฟต์แวร์ที่รองรับการบริหารจัดการระยะไกลดังกล่าวสามารถลงทะเบียนเทมเพลตของตนเองได้
การแก้ไขบรรทัดคำสั่ง
| เรก | |
|---|---|
| นักพัฒนา | ไมโครซอฟต์ |
| ระบบปฏิบัติการ | ไมโครซอฟต์ วินโดวส์ |
| พิมพ์ | สั่งการ |
| ใบอนุญาต | ซอฟต์แวร์เชิงพาณิชย์ที่เป็นกรรมสิทธิ์ |
| เว็บไซต์ | docs.microsoft.com/en-us/windows-server/administration/windows-commands/reg |
| เรจินี | |
|---|---|
| นักพัฒนา | ไมโครซอฟต์ |
| ระบบปฏิบัติการ | ไมโครซอฟต์ วินโดวส์ |
| พิมพ์ | สั่งการ |
| ใบอนุญาต | ซอฟต์แวร์เชิงพาณิชย์ที่เป็นกรรมสิทธิ์ |
| เว็บไซต์ | docs.microsoft.com/en-us/windows-server/administration/windows-commands/regini |
สามารถแก้ไขรีจิสทรีได้หลายวิธีจากบรรทัดคำสั่ง เครื่องมือยูทิลิ ตี้ Reg.exeและRegIni.exe มีอยู่ใน Windows XP และ Windows เวอร์ชันที่ใหม่กว่า สำหรับ Windows เวอร์ชันเก่ากว่านั้น อาจหาได้จากแผ่นซีดี Resource Kit หรือแผ่นซีดีติดตั้ง Windows ต้นฉบับ
นอกจากนี้ ยัง สามารถนำเข้าไฟล์ .REGจากบรรทัดคำสั่งได้โดยใช้คำสั่งต่อไปนี้:
RegEdit.exe /s ไฟล์
เครื่องหมาย /s หมายความว่าไฟล์จะถูก รวมเข้า กับรีจิสทรีโดยไม่แสดงข้อความแจ้งเตือน หาก ละเว้นพารามิเตอร์/s ระบบจะขอให้ผู้ใช้ยืนยันการดำเนินการ ใน Windows 98, Windows 95 และอย่างน้อยบางการกำหนดค่าของ Windows XP สวิตช์ /sยังทำให้RegEdit.exeไม่สนใจการตั้งค่าในรีจิสทรีที่อนุญาตให้ผู้ดูแลระบบปิดใช้งานได้ เมื่อใช้สวิตช์/s RegEdit.exeจะไม่ส่งคืนรหัสส่งคืนที่เหมาะสมหากการดำเนินการล้มเหลว ซึ่งแตกต่างจากReg.exeที่ ส่งคืนรหัสส่งคืน
RegEdit.exe /e file
ส่งออกรีจิสทรีทั้งหมดในรูปแบบ V5 ไปยังไฟล์.REG แบบ UNICODE ในขณะที่ฟังก์ชันใดๆ ก็ตาม
RegEdit.exe /e file HKEY_CLASSES_ROOT[\<key>] RegEdit.exe /e file HKEY_CURRENT_CONFIG[\<key>] RegEdit.exe /e file HKEY_CURRENT_USER[\<key>] RegEdit.exe /e file HKEY_LOCAL_MACHINE[\<key>] RegEdit.exe /e file HKEY_USERS[\<key>]
ส่งออกเฉพาะคีย์ย่อยที่ระบุ (ซึ่งต้องใส่เครื่องหมายคำพูดหากมีช่องว่าง) เท่านั้น
RegEdit.exe / ไฟล์
ส่งออกรีจิสทรีทั้งหมดในรูปแบบ V4 ไปยังไฟล์ ANSI .REG
RegEdit.exe /a ไฟล์<คีย์>
ส่งออกเฉพาะคีย์ย่อยที่ระบุ (ซึ่งต้องใส่เครื่องหมายคำพูดหากมีช่องว่าง) เท่านั้น
นอกจากนี้ยังสามารถใช้Reg.exe ได้อีกด้วย นี่คือตัวอย่างการแสดงค่าของค่ารีจิสทรี Version:
Reg.exe QUERY HKLM\Software\Microsoft\ResKit /v Version ตัวเลือกคำสั่งบรรทัดอื่นๆ ได้แก่VBScriptหรือJScriptร่วมกับCScript , WMIหรือWMIC.exeและWindows PowerShell
สิทธิ์การเข้าถึงรีจิสทรีสามารถจัดการได้ผ่านทางบรรทัดคำสั่งโดยใช้RegIni.exeและ เครื่องมือ {{{1}}}ตัวอย่างเช่น สิทธิ์การเข้าถึง คีย์ HKEY_LOCAL_MACHINE\SOFTWAREสามารถแสดงได้โดยใช้:
SubInACL.exe /keyreg HKEY_LOCAL_MACHINE\SOFTWARE /display คำสั่งและสคริปต์ PowerShell

Windows PowerShellมาพร้อมกับผู้ให้บริการรีจิสทรีซึ่งนำเสนอรีจิสทรีเป็นประเภทตำแหน่งที่คล้ายกับระบบไฟล์ คำสั่งเดียวกันที่ใช้ในการจัดการไฟล์และไดเร็กทอรีในระบบไฟล์สามารถใช้ในการจัดการคีย์และค่าของรีจิสทรีได้[ 29 ]
เช่นเดียวกับระบบไฟล์ PowerShell ใช้แนวคิดของตำแหน่งปัจจุบันซึ่งกำหนดบริบทที่คำสั่งทำงานตามค่าเริ่มต้น คำสั่งGet-ChildItem (มีให้ใช้งานผ่านนามแฝงls , dirหรือgci ด้วย ) จะดึงคีย์ย่อยของตำแหน่งปัจจุบันผู้ใช้สามารถเปลี่ยนตำแหน่งปัจจุบันไปยังคีย์อื่นของรีจิสทรีได้โดยใช้คำสั่งSet-Location (หรือนามแฝงcd ) [ 29 ]คำสั่งที่เปลี่ยนชื่อรายการ ลบรายการ สร้างรายการใหม่ หรือตั้งค่าเนื้อหาของรายการหรือคุณสมบัติสามารถใช้เพื่อเปลี่ยนชื่อคีย์ ลบคีย์หรือซับทรีทั้งหมด หรือเปลี่ยนค่าได้
ผ่านไฟล์สคริปต์ PowerShell ผู้ดูแลระบบสามารถเตรียมสคริปต์ซึ่งเมื่อดำเนินการแล้วจะทำการเปลี่ยนแปลงรีจิสทรี สคริปต์ดังกล่าวสามารถแจกจ่ายให้กับผู้ดูแลระบบที่สามารถเรียกใช้บนเครื่องแต่ละเครื่องได้ ตัวให้บริการรีจิสทรีของ PowerShell รองรับธุรกรรม กล่าวคือ การเปลี่ยนแปลงรีจิสทรีหลายรายการสามารถรวมเข้าเป็นธุรกรรมอะตอมิกเดียวได้ ธุรกรรมอะตอมิกทำให้มั่นใจได้ว่าการเปลี่ยนแปลงทั้งหมดจะถูกบันทึกไปยังฐานข้อมูล หรือหากสคริปต์ล้มเหลว การเปลี่ยนแปลงใดๆ ก็จะไม่ถูกบันทึกไปยังฐานข้อมูล[ 29 ] [ 30 ]
โปรแกรมหรือสคริปต์
สามารถแก้ไขรีจิสทรีได้ผ่าน API ของไลบรารี Advanced Windows 32 Base API ( advapi32.dll ) [ 31 ]รายการฟังก์ชัน API รีจิสทรี:
- รีจิสเตอร์ปิดคีย์
- RegConnectRegistry
- RegCreateKey
- RegCreateKeyEx
- รีจิสเตอร์ลบคีย์
- ค่า RegDelete
- รีจิสเตอร์เอนัมคีย์
- รีจิเอ็นนัมคีย์เอ็กซ์
- ค่า RegEnum
- รีจิสเตอร์ฟลัชคีย์
- RegGetKeySecurity
- รีจิสเตอร์โหลดคีย์
- RegNotifyChangeKeyValue
- รีจิสต์โอเพนคีย์
- รีจิสต์โอเพนคีย์เอ็กซ์
- RegQueryInfoKey
- RegQueryMultipleValues
- ค่า RegQuery
- RegQueryValueEx
- รีจิสเตอร์รีเพลสคีย์
- รีจิสเตอร์รีสตอร์คีย์
- RegSaveKey
- RegSetKeySecurity
- RegSetValue
- RegSetValueEx
- รีจิสเตอร์ยกเลิกโหลดคีย์
ภาษาโปรแกรมหลาย ภาษาเสนอ ฟังก์ชันหรือคลาสไลบรารีรันไทม์ในตัวที่ห่อหุ้ม API ของ Windows ที่อยู่เบื้องหลัง และทำให้โปรแกรมสามารถจัดเก็บการตั้งค่าในรีจิสทรีได้ (เช่นMicrosoft.Win32.RegistryในVB.NETและC#หรือTRegistryในDelphiและFree Pascal ) แอปพลิเคชันที่เปิดใช้งาน COMเช่นVisual Basic 6สามารถใช้อ อบเจ็กต์ WSH WScript.Shellได้ อีกวิธีหนึ่งคือการใช้เครื่องมือ Windows Resource Kit Tool, Reg.exeโดยการเรียกใช้จากโค้ด[ 32 ]แม้ว่านี่จะถือว่าเป็นวิธีการเขียนโปรแกรมที่ไม่ดีก็ตาม
ในทำนองเดียวกันภาษาสคริปต์เช่นPerl (พร้อมWin32::TieRegistry ), Python (พร้อม winreg), Tcl (ซึ่งมาพร้อมกับแพ็คเกจรีจิสทรี) [ 33 ] Windows PowershellและWindows Scripting Hostยังช่วยให้สามารถแก้ไขรีจิสทรีจากสคริปต์ได้
การแก้ไขแบบออฟไลน์
ไฟล์offreg.dll [ 34 ]ซึ่งมีให้ใช้งานจากWindows Driver Kitนำเสนอชุด API สำหรับการสร้างและการจัดการรีจิสทรีฮิฟที่ไม่ได้โหลดในปัจจุบัน ซึ่งคล้ายกับที่จัดหาโดย advapi32.dll
นอกจากนี้ ยังสามารถแก้ไขรีจิสทรี (hives) ของระบบออฟไลน์จากWindows PEหรือLinux ได้ (ในกรณีหลังนี้ใช้ เครื่องมือ โอเพนซอร์ส )
การลงทะเบียนด้วยตนเองของ COM
ก่อนที่จะมีการนำCOM ที่ไม่ต้องลงทะเบียน มาใช้ นักพัฒนาได้รับการสนับสนุนให้เพิ่มโค้ดเริ่มต้นลงในไบนารีแบบ in-process และ out-of-process เพื่อทำการกำหนดค่ารีจิสทรีที่จำเป็นสำหรับวัตถุนั้นให้ทำงานได้ สำหรับไบนารีแบบ in-process เช่นไฟล์ .DLL และ .OCX โมดูลมักจะส่งออกฟังก์ชันที่เรียกว่า DllInstall() [ 35 ]ซึ่งสามารถเรียกใช้โดยโปรแกรมติดตั้งหรือเรียกใช้ด้วยตนเองด้วยยูทิลิตี้เช่น Regsvr32.exe [ 36 ]ไบนารีแบบ out-of-process โดยทั่วไปจะรองรับอาร์กิวเมนต์บรรทัดคำสั่ง /Regserver และ /Unregserver ที่สร้างหรือลบการตั้งค่ารีจิสทรีที่จำเป็น[ 37 ] แอปพลิเคชัน COM ที่ล้มเหลวเนื่องจาก ปัญหา DLL Hellมักจะสามารถซ่อมแซมได้ด้วย RegSvr32.exe หรือสวิตช์ /RegServer โดยไม่ต้องเรียกใช้โปรแกรมติดตั้งใหม่[ 38 ]
ฟังก์ชันขั้นสูง
Windows เปิดเผย API ที่อนุญาตให้แอปพลิเคชันในโหมดผู้ใช้ลงทะเบียนเพื่อรับเหตุการณ์การแจ้งเตือนหากมีการเปลี่ยนแปลงคีย์รีจิสทรีเฉพาะ[ 39 ] นอกจากนี้ยังมี API ที่อนุญาตให้แอปพลิเคชันในโหมดเคอร์เนลกรองและแก้ไขการเรียกรีจิสทรีที่ทำโดยแอปพลิเคชันอื่น[ 40 ]
Windows ยังรองรับการเข้าถึงรีจิสทรีของคอมพิวเตอร์เครื่องอื่นจากระยะไกลผ่านฟังก์ชันRegConnectRegistry [ 41 ]หากบริการ Remote Registry ทำงานอยู่ ได้รับการกำหนดค่าอย่างถูกต้อง และการรับส่งข้อมูลเครือข่ายไม่ได้ถูกปิดกั้นด้วยไฟร์วอลล์[ 42 ]
ความปลอดภัย
แต่ละคีย์ในรีจิสทรีของ Windows NT เวอร์ชันต่างๆ สามารถมีตัวอธิบายความปลอดภัย ที่เกี่ยวข้องได้ ตัวอธิบายความปลอดภัยนี้ประกอบด้วยรายการควบคุมการเข้าถึง (ACL)ที่อธิบายว่ากลุ่มผู้ใช้หรือผู้ใช้แต่ละรายได้รับอนุญาตหรือถูกปฏิเสธสิทธิ์ในการเข้าถึงหรือไม่ ชุดสิทธิ์ในรีจิสทรีประกอบด้วยสิทธิ์/การอนุญาต 10 ข้อ ซึ่งสามารถอนุญาตหรือปฏิเสธได้อย่างชัดเจนสำหรับผู้ใช้หรือกลุ่มผู้ใช้
| การอนุญาต | คำอธิบาย |
|---|---|
| ค่าแบบสอบถาม | สิทธิ์ในการอ่านค่าคีย์รีจิสทรี |
| กำหนดค่า | สิทธิ์ในการเขียนค่าใหม่ |
| สร้างคีย์ย่อย | สิทธิ์ในการสร้างคีย์ย่อย |
| ระบุคีย์ย่อย | อนุญาตให้ระบุคีย์ย่อยได้ |
| แจ้ง | สิทธิ์ในการขอรับการแจ้งเตือนการเปลี่ยนแปลงสำหรับคีย์รีจิสทรีหรือคีย์ย่อย |
| สร้างลิงก์ | สงวนสิทธิ์โดยระบบปฏิบัติการ |
| ลบ | สิทธิ์ในการลบคีย์ |
| เขียน DACL | สิทธิ์ในการแก้ไขสิทธิ์การเข้าถึงของ DACL ของคอนเทนเนอร์ |
| เขียนถึงเจ้าของ | สิทธิ์ในการแก้ไขเจ้าของตู้คอนเทนเนอร์ |
| การควบคุมการอ่าน | สิทธิ์ในการอ่าน DACL |
เช่นเดียวกับวัตถุที่สามารถรักษาความปลอดภัยได้อื่นๆ ในระบบปฏิบัติการ รายการควบคุมการเข้าถึงแต่ละรายการ (ACE) บนตัวอธิบายความปลอดภัยสามารถระบุได้อย่างชัดเจนหรือสืบทอดมาจากวัตถุหลัก[ 43 ]
Windows Resource Protectionเป็นคุณสมบัติของWindows Vistaและ Windows เวอร์ชันต่อมาที่ใช้ระบบรักษาความปลอดภัยเพื่อปฏิเสธการเข้าถึง WRITE ของผู้ดูแลระบบและระบบไปยังคีย์ที่สำคัญบางคีย์เพื่อปกป้องความสมบูรณ์ของระบบจากมัลแวร์และการแก้ไขโดยไม่ได้ตั้งใจ[ 44 ]
ACE พิเศษบนตัวอธิบายความปลอดภัยยังสามารถใช้การควบคุมความสมบูรณ์ที่บังคับสำหรับคีย์รีจิสทรีและคีย์ย่อยได้อีกด้วย กระบวนการที่ทำงานในระดับความสมบูรณ์ที่ต่ำกว่าไม่สามารถเขียน เปลี่ยนแปลง หรือลบคีย์/ค่ารีจิสทรีได้ แม้ว่าบัญชีของกระบวนการนั้นจะได้รับสิทธิ์การเข้าถึงผ่าน ACL ก็ตาม ตัวอย่างเช่น Internet Explorer ที่ทำงานในโหมดป้องกันสามารถอ่านคีย์/ค่ารีจิสทรีที่มีความสมบูรณ์ระดับปานกลางและต่ำของผู้ใช้ที่เข้าสู่ระบบในปัจจุบันได้ แต่สามารถแก้ไขได้เฉพาะคีย์ที่มีความสมบูรณ์ระดับต่ำเท่านั้น[ 45 ]
นอกเหนือจากเรื่องความปลอดภัยแล้ว คีย์รีจิสทรีไม่สามารถลบหรือแก้ไขได้เนื่องจากสาเหตุอื่นๆ คีย์รีจิสทรีที่มีอักขระ NUL ไม่สามารถลบได้ด้วยโปรแกรมแก้ไขรีจิสทรีมาตรฐาน และต้องใช้ยูทิลิตี้พิเศษสำหรับการลบเช่น RegDelNull [ 46 ] [ 47 ]
การสำรองข้อมูลและการกู้คืน
ระบบปฏิบัติการ Windows รุ่นต่างๆ รองรับวิธีการสำรองและกู้คืนรีจิสทรีที่แตกต่างกันหลายวิธีตลอดหลายปีที่ผ่านมา ซึ่งบางวิธีก็ล้าสมัยไปแล้ว:
- ฟังก์ชัน System Restoreสามารถสำรองข้อมูลรีจิสทรีและกู้คืนได้ตราบใดที่ Windows สามารถบูตได้ หรือจากสภาพแวดล้อมการกู้คืนของ Windows (เริ่มตั้งแต่ Windows Vista เป็นต้นไป)
- NTBackupสามารถสำรองข้อมูลรีจิสทรีเป็นส่วนหนึ่งของสถานะระบบและกู้คืนได้การกู้คืนระบบอัตโนมัติใน Windows XP ก็สามารถกู้คืนรีจิสทรีได้เช่นกัน
- ใน Windows NT ตัวเลือก Last Known Good Configurationในเมนูเริ่มต้นระบบจะเชื่อมโยง คีย์ HKLM\SYSTEM\CurrentControlSet อีกครั้ง ซึ่งเป็นคีย์ที่เก็บข้อมูลฮาร์ดแวร์และไดรเวอร์อุปกรณ์
- Windows 98 และ Windows ME มีเครื่องมือตรวจสอบรีจิสทรีแบบบรรทัดคำสั่ง (Scanreg.exe) และแบบ GUI (Scanregw.exe) เพื่อตรวจสอบและแก้ไขความสมบูรณ์ของรีจิสทรี สร้างการสำรองข้อมูลอัตโนมัติเป็นประจำได้สูงสุดห้าครั้งตามค่าเริ่มต้น และสามารถกู้คืนได้ด้วยตนเองหรือเมื่อใดก็ตามที่ตรวจพบความเสียหาย[ 48 ] เครื่องมือตรวจสอบรีจิสทรีจะสำรองข้อมูลรีจิสทรีไปยัง %Windir%\Sysbckupตามค่าเริ่มต้นScanreg.exe ยังสามารถเรียกใช้จากMS-DOSได้ อีกด้วย [ 49 ]
- แผ่นซีดีรอม Windows 95 มีโปรแกรมกู้คืนฉุกเฉิน (ERU.exe) และโปรแกรมสำรองข้อมูลการกำหนดค่า (Cfgback.exe) สำหรับสำรองและกู้คืนรีจิสทรี นอกจากนี้ Windows 95 ยังสำรองข้อมูลรีจิสทรีไปยังไฟล์ system.da0 และ user.da0 ทุกครั้งที่บูตเครื่องสำเร็จ
- Windows NT 4.0มีRDISK.EXEซึ่งเป็นยูทิลิตี้สำหรับสำรองและกู้คืนรีจิสทรีทั้งหมด[ 50 ]
- Windows 2000 Resource Kitมีโปรแกรมยูทิลิตี้ที่ไม่ได้รับการสนับสนุนสองตัวชื่อ Regback.exe และ RegRest.exe สำหรับการสำรองข้อมูลและกู้คืนรีจิสทรี[ 51 ]
- การสำรองข้อมูลรีจิสทรีอัตโนมัติเป็นระยะๆ จะถูกปิดใช้งานโดยค่าเริ่มต้นในWindows 10 May 2019 Update (เวอร์ชัน 1903) Microsoft แนะนำให้ใช้ System Restore แทน[ 52 ]
นโยบาย
นโยบายกลุ่ม
Windows 2000 และ Windows เวอร์ชันที่ใหม่กว่าใช้Group Policyเพื่อบังคับใช้การตั้งค่ารีจิสทรีผ่านส่วนขยายไคลเอ็นต์เฉพาะรีจิสทรีในเอ็นจิ้นการประมวลผล Group Policy [ 53 ]สามารถใช้นโยบายกับคอมพิวเตอร์เครื่องเดียวในเครื่องโดยใช้gpedit.mscหรือกับผู้ใช้และคอมพิวเตอร์หลายเครื่องในโดเมนโดย ใช้gpmc.msc
ระบบเดิม
ในระบบปฏิบัติการ Windows 95, Windows 98, Windows ME และ Windows NT 4.0 ผู้ดูแลระบบสามารถใช้ไฟล์พิเศษที่เรียกว่าไฟล์นโยบาย ( POLICY.POL ) เพื่อรวมเข้ากับรีจิสทรีได้ ไฟล์นโยบายนี้ช่วยให้ผู้ดูแลระบบป้องกันผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบจากการเปลี่ยนแปลงการตั้งค่ารีจิสทรี เช่น ระดับความปลอดภัยของInternet Explorerและภาพพื้นหลังเดสก์ท็อป เป็นต้น ไฟล์นโยบายนี้ส่วนใหญ่ใช้ในธุรกิจที่มีคอมพิวเตอร์จำนวนมาก ซึ่งธุรกิจจำเป็นต้องได้รับการปกป้องจากผู้ใช้ที่ไม่ประสงค์ดีหรือประมาท
นามสกุลไฟล์นโยบายเริ่มต้นคือ.POLไฟล์นโยบายจะกรองการตั้งค่าที่บังคับใช้ตามผู้ใช้และตามกลุ่ม ("กลุ่ม" คือชุดผู้ใช้ที่กำหนดไว้) เพื่อให้ได้ผลลัพธ์ดังกล่าว ไฟล์นโยบายจะผสานรวมเข้ากับรีจิสทรี ป้องกันไม่ให้ผู้ใช้หลีกเลี่ยงได้โดยการเปลี่ยนการตั้งค่ากลับไปเป็นค่าเดิม ไฟล์นโยบายมักจะถูกแจกจ่ายผ่านเครือข่าย LAN แต่ก็สามารถวางไว้ในคอมพิวเตอร์เครื่องโลคัลได้เช่นกัน
ไฟล์นโยบายถูกสร้างขึ้นโดยเครื่องมือฟรีจาก Microsoft ที่มีชื่อไฟล์ว่าpoledit.exeสำหรับ Windows 95/Windows 98 และมีโมดูลการจัดการคอมพิวเตอร์สำหรับ Windows NT ตัวแก้ไขนี้ต้องการสิทธิ์ผู้ดูแลระบบในการทำงานบนระบบที่ใช้สิทธิ์ผู้ดูแลระบบ ตัวแก้ไขยังสามารถเปลี่ยนแปลงการตั้งค่ารีจิสทรีปัจจุบันของคอมพิวเตอร์เครื่องนั้นได้โดยตรง และหากติดตั้งและเริ่มต้นบริการรีจิสทรีระยะไกลบนคอมพิวเตอร์เครื่องอื่น ก็สามารถเปลี่ยนแปลงรีจิสทรีบนคอมพิวเตอร์เครื่องนั้นได้เช่นกัน ตัวแก้ไขนโยบายจะโหลดการตั้งค่าที่สามารถเปลี่ยนแปลงได้จาก ไฟล์ .ADMซึ่งมีไฟล์หนึ่งรวมอยู่ด้วย โดยไฟล์ .ADM นี้มีค่าการตั้งค่าที่เชลล์ของ Windows จัดเตรียมไว้ ไฟล์ . ADMเป็นข้อความธรรมดาและรองรับการแปลภาษาได้ง่ายโดยอนุญาตให้จัดเก็บข้อความทั้งหมดไว้ในที่เดียว
เวอร์ชวลไลเซชัน
การจำลองไฟล์ INI
เคอร์เนล Windows NT รองรับการเปลี่ยนเส้นทาง APIที่เกี่ยวข้องกับไฟล์ INI ไปยังไฟล์เสมือนในตำแหน่งรีจิสทรี เช่นHKEY_CURRENT_USERโดยใช้คุณสมบัติที่เรียกว่า "InifileMapping" [ 54 ] ฟังก์ชันนี้ถูกนำมาใช้เพื่อให้แอปพลิเคชันรุ่นเก่าที่เขียนขึ้นสำหรับ Windows เวอร์ชัน 16 บิตสามารถทำงานบนแพลตฟอร์ม Windows NT ซึ่งโฟลเดอร์ System ไม่ถือว่าเป็นตำแหน่งที่เหมาะสมสำหรับข้อมูลหรือการกำหนดค่าเฉพาะผู้ใช้อีกต่อไป แอปพลิเคชัน 32 บิตที่ไม่เป็นไปตามข้อกำหนดก็สามารถเปลี่ยนเส้นทางได้ในลักษณะนี้เช่นกัน แม้ว่าคุณสมบัตินี้เดิมทีมีไว้สำหรับแอปพลิเคชัน 16 บิตก็ตาม
การจำลองรีจิสทรี
Windows Vistaได้นำเสนอการจำลองรีจิสทรีแบบจำกัด ซึ่งช่วยให้แอปพลิเคชันที่เขียนไม่ดีซึ่งไม่เคารพหลักการสิทธิ์ขั้นต่ำสุดและพยายามเขียนข้อมูลผู้ใช้ไปยังตำแหน่งระบบแบบอ่านอย่างเดียว (เช่นHKEY_LOCAL_MACHINE ) ถูกเปลี่ยนเส้นทางไปยังตำแหน่งที่เหมาะสมกว่าโดยอัตโนมัติ โดยไม่เปลี่ยนแปลงตัวแอปพลิเคชันเอง
ในทำนองเดียวกันการจำลองเสมือนแอปพลิเคชันจะเปลี่ยนเส้นทางการดำเนินการรีจิสทรีที่ไม่ถูกต้องทั้งหมดของแอปพลิเคชันไปยังตำแหน่งอื่น เช่น ไฟล์ เมื่อใช้ร่วมกับการจำลองเสมือนไฟล์ วิธีนี้จะช่วยให้แอปพลิเคชันสามารถทำงานบนเครื่องได้โดยไม่ต้องติดตั้งลงในเครื่องนั้น
กระบวนการ ที่มีความสมบูรณ์ต่ำ อาจใช้การจำลองรีจิสทรีด้วยเช่นกัน ตัวอย่างเช่น Internet Explorer 7 หรือ 8 ที่ทำงานใน "โหมดป้องกัน" บน Windows Vista และ เวอร์ชัน ที่สูงกว่า จะเปลี่ยนเส้นทางการเขียนรีจิสทรีโดยตัวควบคุม ActiveX ไปยังตำแหน่งที่แยกต่างหากโดยอัตโนมัติ เพื่อป้องกันการโจมตีด้านความปลอดภัย บางประเภท
ชุดเครื่องมือความเข้ากันได้ของแอปพลิเคชัน[ 55 ]มีชิมที่สามารถเปลี่ยนเส้นทางการทำงานของรีจิสทรีHKEY_LOCAL_MACHINEหรือHKEY_CLASSES_ROOT ไปยัง HKEY_CURRENT_USER ได้อย่างโปร่งใส เพื่อแก้ไขข้อบกพร่อง " LUA " ที่ทำให้แอปพลิเคชันไม่ทำงานสำหรับผู้ใช้ที่มีสิทธิ์ไม่เพียงพอ
ข้อเสีย
นักวิจารณ์ระบุว่ารีจิสทรีใน Windows 95 เป็นจุดล้มเหลวเพียงจุดเดียวเนื่องจากจำเป็นต้องติดตั้งระบบปฏิบัติการใหม่หากรีจิสทรีเสียหาย อย่างไรก็ตาม Windows NT ใช้บันทึกธุรกรรมเพื่อป้องกันความเสียหายระหว่างการอัปเดต เวอร์ชันปัจจุบันของ Windows ใช้ไฟล์บันทึกสองระดับเพื่อให้มั่นใจในความสมบูรณ์แม้ในกรณีที่ไฟฟ้าดับหรือเหตุการณ์ร้ายแรงที่คล้ายกันระหว่างการอัปเดตฐานข้อมูล[ 56 ]แม้ในกรณีที่เกิดข้อผิดพลาดที่ไม่สามารถกู้คืนได้ Windows ก็สามารถซ่อมแซมหรือเริ่มต้นรายการรีจิสทรีที่เสียหายใหม่ได้ระหว่างการบูตระบบ[ 56 ]
Richard WM Jones ผู้เขียนlibguestfsและhivex (เครื่องมือสำหรับอ่านและเขียนรีจิสทรีจากระบบอื่นที่ไม่ใช่การติดตั้ง Windows โฮสต์ รวมถึงระบบที่ไม่ใช่ Windows) ได้ทำการวิจารณ์ดังต่อไปนี้: [ 27 ]
- เมื่อเปรียบเทียบกับฐานข้อมูลที่มีคุณสมบัติเช่นคอลัมน์ที่มีดัชนีแล้ว รีจิสทรีที่มีแนวคิดเกี่ยวกับไดเร็กทอรี (คีย์) ไฟล์ (ค่า) และแอตทริบิวต์เพิ่มเติม (สิทธิ์การเข้าถึง) นั้นคล้ายกับระบบไฟล์มากกว่า และเป็นระบบไฟล์ที่ไม่สมบูรณ์ด้วยซ้ำ การขาดดัชนีคอลัมน์ทำให้เกิดคีย์ที่มีชื่อแปลกๆ มากมาย เช่น\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_1af4&dev_1001& subsys_00000000
- รูปแบบโครงสร้างข้อมูลแบบ Hive นั้นอิงตาม โครงสร้างแบบ structของคอมไพเลอร์ดั้งเดิมในช่วงทศวรรษ 1990 การใช้งานตัวอ่านใน Windows มีการตรวจสอบความถูกต้องไม่เพียงพอ ทำให้เกิดการค้างหรือขัดข้องได้ง่ายเนื่องจากโครงสร้างพอยเตอร์ที่ไม่ถูกต้อง (ลูปอ้างอิง พอยเตอร์ที่อยู่นอกช่วง) การใช้งานตัวเขียนไม่ได้ล้างหน่วยความจำที่ไม่ได้ใช้ให้เป็นศูนย์อย่างถูกต้อง ทำให้โครงสร้างข้อมูลเคอร์เนลรั่วไหลไปยังส่วนที่ไม่ได้ใช้งานของรีจิสทรี
- ระบบปฏิบัติการ Windows แต่ละเวอร์ชันมีความเข้าใจที่แตกต่างกันเกี่ยวกับความหมายของ "ประเภท" แต่ละประเภทในรีจิสทรี ตัวอย่างเช่น ประเภทสตริงอย่างREG_SZเดิมทีถูกจัดเก็บในรูปแบบ ASCII 7 บิต ก่อนที่จะเปลี่ยนไปใช้ UTF-16LE ในภายหลัง ดังนั้นในการอ่านและเขียนข้อมูลในรีจิสทรีอย่างถูกต้อง จำเป็นต้องทราบเวอร์ชันของ Windows ที่เกี่ยวข้องด้วย
สิ่งเทียบเท่าและทางเลือกอื่น
ในระบบปฏิบัติการ Windows การใช้รีจิสทรีเพื่อจัดเก็บข้อมูลโปรแกรมเป็นเรื่องที่ขึ้นอยู่กับดุลยพินิจของนักพัฒนา ไมโครซอฟต์มีอินเทอร์เฟซการเขียนโปรแกรมสำหรับการจัดเก็บข้อมูลในไฟล์XML (ผ่าน MSXML ) หรือไฟล์ฐานข้อมูล (ผ่านSQL Server Compact ) ซึ่งนักพัฒนาสามารถนำไปใช้แทนได้ นอกจากนี้ นักพัฒนายังมีอิสระที่จะใช้ทางเลือกอื่นที่ไม่ใช่ของไมโครซอฟต์ หรือพัฒนาระบบจัดเก็บข้อมูลที่เป็นกรรมสิทธิ์ของตนเองก็ได้
แตกต่างจากโมเดลฐานข้อมูลแบบไบนารีของ Windows Registry ระบบปฏิบัติการอื่นๆ บางระบบใช้ ไฟล์ ข้อความธรรมดา แยกต่างหาก สำหรับ การกำหนดค่า ของเดมอนและแอปพลิเคชัน แต่จะจัดกลุ่มการกำหนดค่าเหล่านี้เข้าด้วยกันเพื่อให้ง่ายต่อการจัดการ
- ในระบบปฏิบัติการที่คล้าย Unix (รวมถึง Linux ) ที่ปฏิบัติตามมาตรฐานลำดับชั้นของระบบไฟล์ ไฟล์การกำหนดค่าทั่วทั้งระบบ (ข้อมูลที่คล้ายกับสิ่งที่ปรากฏในHKEY_LOCAL_MACHINEบน Windows) จะถูกจัดเก็บไว้ในไฟล์ใน/etc/และไดเร็กทอรีย่อย หรือบางครั้งใน/usr/local/etc/ข้อมูลต่อผู้ใช้ (ข้อมูลที่เทียบเท่ากับข้อมูลในHKEY_CURRENT_USER โดยประมาณ ) จะถูกจัดเก็บไว้ในไดเร็กทอรีและไฟล์ที่ซ่อนอยู่ (ที่ขึ้นต้นด้วยจุด) ภายใน ไดเร็กทอรีโฮมของผู้ใช้อย่างไรก็ตาม แอปพลิเคชันที่สอดคล้องกับ XDGควรจะอ้างอิงถึงตัวแปรสภาพแวดล้อมที่กำหนดไว้ในข้อกำหนดไดเร็กทอรีพื้นฐาน[ 57 ]
- ในระบบปฏิบัติการ macOSไฟล์การตั้งค่าทั่วทั้งระบบมักจะถูกจัดเก็บไว้ใน โฟลเดอร์ /Library/ในขณะที่ไฟล์การตั้งค่าเฉพาะผู้ใช้จะถูกจัดเก็บไว้ใน โฟลเดอร์ ~/Library/ ที่เกี่ยวข้อง ในไดเร็กทอรีโฮมของผู้ใช้ และไฟล์การตั้งค่าที่ระบบกำหนดจะอยู่ใน/System/Library/ภายในไดเร็กทอรีเหล่านี้ แอปพลิเคชันมักจะจัดเก็บ ไฟล์ รายการคุณสมบัติไว้ในไดเร็กทอรีย่อยPreferences/
- RISC OS (อย่าสับสนกับMIPS RISC/os ) ใช้ไดเร็กทอรีสำหรับข้อมูลการกำหนดค่า ซึ่งช่วยให้สามารถคัดลอกแอปพลิเคชันไปยังไดเร็กทอรีแอปพลิ เคชัน ได้ ต่างจากกระบวนการติดตั้งแยกต่างหากที่เป็นลักษณะเฉพาะของแอปพลิเคชัน Windows วิธีการนี้ยังใช้ในROX Desktopสำหรับ Linux ด้วย [ 58 ] การกำหนดค่าแบบใช้ไดเร็กทอรีนี้ยังทำให้สามารถใช้แอปพลิเคชันเวอร์ชันต่างๆ ได้ เนื่องจากการกำหนดค่าจะทำ "แบบเรียลไทม์" [ 59 ] หากต้องการลบแอปพลิเคชัน ก็สามารถลบโฟลเดอร์ที่เป็นของแอปพลิเคชันได้[ 60 ] [ 61 ] การทำเช่นนี้มักจะไม่ลบการตั้งค่าการกำหนดค่าที่จัดเก็บไว้แยกต่างหากจากแอปพลิเคชัน ซึ่งโดยปกติจะอยู่ใน โครงสร้าง !Bootของคอมพิวเตอร์ใน !Boot Choices หรืออาจจะอยู่ที่ใดก็ได้บนเซิร์ฟเวอร์ไฟล์เครือข่าย สามารถคัดลอกโปรแกรมที่ติดตั้งระหว่างคอมพิวเตอร์ที่ใช้ RISC OS ได้โดยการคัดลอกไดเร็กทอรีแอปพลิเคชันที่เป็นของโปรแกรม อย่างไรก็ตาม บางโปรแกรมอาจต้องติดตั้งใหม่ เช่น เมื่อไฟล์ที่ใช้ร่วมกันอยู่นอกไดเร็กทอรีแอปพลิเคชัน[ 59 ]
- IBM AIX (ระบบปฏิบัติการ Unix รูปแบบหนึ่ง) ใช้ส่วนประกอบรีจิสทรีที่เรียกว่าObject Data Manager (ODM) ODM ใช้สำหรับจัดเก็บข้อมูลเกี่ยวกับการกำหนดค่าระบบและอุปกรณ์ ชุดเครื่องมือและยูทิลิตี้มากมายช่วยให้ผู้ใช้สามารถขยาย ตรวจสอบ และแก้ไขฐานข้อมูล ODM ได้ ODM จัดเก็บข้อมูลไว้ในไฟล์หลายไฟล์ โดยค่าเริ่มต้นจะอยู่ที่/etc/ objrepos
- สภาพ แวดล้อมเดสก์ท็อป GNOMEใช้ส่วนต่อประสานที่คล้ายกับรีจิสทรีที่เรียกว่าdconfสำหรับจัดเก็บการตั้งค่าต่างๆ สำหรับเดสก์ท็อปและแอปพลิเคชัน
- โครงการElektra Initiativeนำเสนอทางเลือกแบ็กเอนด์สำหรับไฟล์การกำหนดค่าข้อความประเภทต่างๆ
- แม้จะไม่ใช่ระบบปฏิบัติการ แต่เลเยอร์ความเข้ากันได้ของWine ซึ่งอนุญาตให้ซอฟต์แวร์ Windows ทำงานบนระบบที่คล้าย Unix ก็ยังใช้รีจิสทรีที่คล้าย Windows ในรูปแบบไฟล์ข้อความในโฟลเดอร์WINEPREFIX ได้แก่ system.reg ( HKEY_LOCAL_MACHINE ), user.reg ( HKEY_CURRENT_USER ) และuserdef.reg [ 62 ]รูปแบบแทบจะเหมือนกับ ไฟล์ .REG ของ Windows ยกเว้นว่าบรรทัดส่วนหัวจะเปลี่ยนเป็น "WINE REGISTRY Version 2" และเส้นทาง (คีย์) จะไม่เริ่มต้นด้วยชื่อของฮิฟ
ดูเพิ่มเติม
- ตัวล้างรีจิสทรี
- Logparser – เครื่องมือสืบค้นข้อมูลแบบคล้าย SQLสำหรับไฟล์บันทึกประเภทต่างๆ
- รายการตัวระบุการซ้อนทับไอคอนเชลล์
- CryptoLocker – โปรแกรมเรียกค่าไถ่ที่แก้ไขรีจิสทรี
หมายเหตุ
- ^เมื่อแอปพลิเคชันไม่สามารถทำงานได้เนื่องจากร้องขอสิทธิ์มากกว่าที่ต้องการ (และถูกปฏิเสธสิทธิ์เหล่านั้น) จะเรียกว่าข้อผิดพลาดของแอปพลิเคชันผู้ใช้แบบจำกัด (LUA)
เชิงอรรถ
- ^เอสโปซิโต, ดิโน (พฤศจิกายน 2000). "รีจิสทรีของ Windows 2000: คุณสมบัติและ API ล่าสุดมอบพลังในการปรับแต่งและขยายแอปของคุณ" . นิตยสาร MSDN . ไมโครซอฟต์. เก็บถาวรจากต้นฉบับเมื่อวันที่ 15 เมษายน 2003 . สืบค้นเมื่อ19 กรกฎาคม 2007 .
- ^ a b c "รีจิสทรีของระบบ "
- ^ "ส่วนประกอบสถาปัตยกรรมของ Windows 95" . www.microsoft.com . เก็บถาวรจากต้นฉบับเมื่อวันที่ 7 กุมภาพันธ์ 2551 . เรียกดูเมื่อวันที่ 29 เมษายน 2551 .
ตารางต่อไปนี้แสดงปัญหาหรือข้อจำกัดอื่นๆ ที่เกิดจากการใช้ไฟล์ .INI ซึ่งสามารถแก้ไขได้โดยการใช้ Registry
- ^ฮิปสัน 2002 , หน้า 5, 41–43.
- ↑ริกเตอร์, เจฟฟรีย์; นาซาร์, คริสตอฟ (2008) Windows ผ่าน C/C++ (ฉบับที่ห้า) ไมโครซอฟต์เพรส . ไอเอสบีเอ็น 9780735642461สืบค้นข้อมูลเมื่อวันที่ 28 สิงหาคม 2564
- ^เรย์มอนด์ เฉิน , "ทำไมคีย์รีจิสทรีจึงมีค่าเริ่มต้น?"
- ^ฮิปสัน 2002 , หน้า 207, 513–514.
- ^ฮิปสัน 2002 , หน้า 520–521.
- ^ฮิปสัน 2002 , หน้า 7.
- ^ "ออกแบบตามข้อกำหนดแอปพลิเคชัน Windows XP" . ไมโครซอฟต์ . 20 สิงหาคม 2545 . สืบค้นเมื่อ8 เมษายน 2552 .
- ^ "HKEY_LOCAL_MACHINE" . Gautam. 2009 . สืบค้นเมื่อ8 เมษายน 2009 .
- ^ "คีย์รีจิสทรีที่ได้รับผลกระทบจาก WOW64 (Windows)" . Msdn.microsoft.com . สืบค้นเมื่อ10 เมษายน 2557 .
- ^ "คำอธิบายเกี่ยวกับรีจิสทรีของ Microsoft Windows"สืบค้นเมื่อ25 กันยายน 2551
- ^ "HKEY_CURRENT_USER" . Microsoft . 2009 . สืบค้นเมื่อ8 เมษายน 2552 .
- ^ "คำอธิบายของ คีย์รีจิสทรี HKEY_DYN_DATA ใน Windows 95, Windows 98 และ Windows 98 SE" support.microsoft.com
{{cite web}}: templatestyles stripmarker in|title=at position 20 ( help ) - ^ "เจาะลึก HKEY_DYN_DATA" . rinet.ru . เก็บถาวรจากต้นฉบับเมื่อวันที่ 9 พฤษภาคม 2551
- ^ "รังผึ้งทะเบียน" . สืบค้นเมื่อ 19 กรกฎาคม 2550 .
- ^ Chen, Raymond (8 สิงหาคม 2554). "ทำไมไฟล์รีจิสทรีจึงเรียกว่า "hive"?" . The Old New Thing . สืบค้นเมื่อ29 กรกฎาคม 2554 .
- ^ "ภาพรวมของรีจิสทรี Windows NT" . สืบค้นเมื่อ2 ธันวาคม 2011 .
- ^ "ภายในทะเบียน" . สืบค้นเมื่อ 28 ธันวาคม 2550 .
- ^ a b Norris, Peter (กุมภาพันธ์ 2009). "โครงสร้างภายในของรีจิสทรีของ Windows" (PDF) . มหาวิทยาลัยแครนฟิลด์. เก็บถาวรจากต้นฉบับ(PDF)เมื่อวันที่ 29 พฤษภาคม 2009.
- ^ "แสดงไอคอนไม่ถูกต้องสำหรับไฟล์ .ico" 15 พฤศจิกายน 2552 สืบค้นเมื่อ 31 มีนาคม 2555
- ^ Gupta, Vishal (26 สิงหาคม 2554). "วิธีการถอนการติดตั้ง/ลบโปรแกรมใน Windows อย่างสมบูรณ์โดยไม่ต้องใช้ซอฟต์แวร์ของบุคคลที่สาม? - AskVG" . www.askvg.com .
- ^ " คุณอาจได้รับข้อความแสดงข้อผิดพลาด "STOP 0x00000035 NO_MORE_IRP_STACK_LOCATIONS" เมื่อคุณพยายามเข้าสู่ระบบโดเมน" 9 ตุลาคม 2554 สืบค้นเมื่อ31 มีนาคม 2555หน้านี้แนะนำให้ผู้ใช้แก้ไขรีจิสทรีเมื่อแก้ไขปัญหา
- ^การเปลี่ยนชื่อคีย์จะดำเนินการโดยการลบและเพิ่มคีย์ใหม่โดยคงค่า/คีย์ย่อยไว้ เนื่องจาก API พื้นฐานไม่รองรับฟังก์ชันการเปลี่ยนชื่อโดยตรง
- ^ a b c d e "วิธีการเพิ่ม แก้ไข หรือลบซับคีย์และค่ารีจิสทรีโดยใช้ไฟล์ . reg " support.microsoft.com
- ^ a b "ทำไมรีจิสทรีของ Windows ถึงห่วย...ในเชิงเทคนิค"ริชาร์ด ดับเบิลยู เอ็ม โจนส์ 18 กุมภาพันธ์ 2010
- ^ "การใช้งานนโยบายกลุ่ม" . ไมโครซอฟต์
- ^ a b c Payette, Bruce; Siddaway, Richard (2018). Windows PowerShell in Action (ฉบับที่สาม). สำนักพิมพ์ Manning Publicationsหน้า 7–8 , 24, 608, 708–710 . ISBN 9781633430297สืบค้นข้อมูลเมื่อวันที่ 28 สิงหาคม 2564
- ^ วอร์เนอร์, ทิโมธี แอล. (พฤษภาคม 2015). Windows PowerShell ใน 24 ชั่วโมง, Sams Teach Yourself . สำนักพิมพ์ Sams . หน้า 19 , 211. ISBN 9780134049359สืบค้นข้อมูลเมื่อวันที่ 28 สิงหาคม 2564
- ^ "การอ่านและการเขียนค่ารีจิสทรีด้วย Visual Basic" สืบค้นเมื่อ 19 กรกฎาคม 2550
- ^ "คำสั่ง REG ใน Windows XP" . สืบค้นเมื่อ19 กรกฎาคม 2550 .
- ^ "หน้าคู่มือรีจิสทรี – แพ็คเกจ Tcl" . www.tcl.tk . สืบค้นเมื่อ14 ธันวาคม 2017 .
- ^ "คลังข้อมูลทะเบียนแบบออฟไลน์" . สืบค้นเมื่อ4 มิถุนายน 2557 .
- ^ "ฟังก์ชัน DLLInstall" . Microsoft . 7 มีนาคม 2012 . สืบค้นเมื่อ22 มีนาคม 2012 .
- ^ "Regsvr32" . Microsoft . สืบค้นเมื่อ22 มีนาคม 2012 .
- ^ "วิธีการ: ลงทะเบียนเซิร์ฟเวอร์อัตโนมัติ" . ไมโครซอฟต์. สืบค้นเมื่อ22 มีนาคม 2555 .
- ^ "วิธีการลงทะเบียน PowerPoint 2000, PowerPoint 2003, PowerPoint 2007 และ PowerPoint 2010 ใหม่" . Microsoft . มกราคม 2012 . สืบค้นเมื่อ22 มีนาคม 2012 .
- ^ "ฟังก์ชัน RegNotifyChangeKeyValue" . Microsoft.
- ^ "การลงทะเบียนเพื่อรับการแจ้งเตือน" . ไมโครซอฟต์
- ^ "ฟังก์ชัน RegConnectRegistry" . Microsoft.
- ^ "วิธีจัดการการเข้าถึงรีจิสทรีจากระยะไกล" . ไมโครซอฟต์
- ^ Gibson, Darril (28 มิถุนายน 2011). "บทที่ 4: การรักษาความปลอดภัยการเข้าถึงด้วยสิทธิ์อนุญาต". ความปลอดภัยของ Microsoft Windows: สิ่งจำเป็น . อินเดียนาโพลิส, อินเดียนา: Wiley. ISBN 978-1-118-01684-8.
- ^ "ความเข้ากันได้ของแอปพลิเคชัน: การป้องกันทรัพยากรของ Windows (WRP)" . Microsoft . สืบค้นเมื่อ8 สิงหาคม 2555 .
- ^ Marc Silbey, Peter Brundrett. "การทำความเข้าใจและการใช้งานโหมดป้องกันใน Internet Explorer" . สืบค้นเมื่อ8 สิงหาคม 2555 .
- ^ "RegDelNull v1.1" . 1 พฤศจิกายน 2006 . สืบค้นเมื่อ8 สิงหาคม 2012 .
- ^ "ไม่สามารถลบคีย์รีจิสทรีบางรายการได้ – เกิดข้อผิดพลาดขณะลบคีย์" 23 มีนาคม 2553 สืบค้นเมื่อ8 สิงหาคม 2555หน้าเว็บฝ่ายสนับสนุนของ Microsoft
- ^ "คำอธิบายของเครื่องมือตรวจสอบรีจิสทรีของ Windows (Scanreg.exe) "
- ^ "ตัวเลือกคำสั่งบรรทัดสำหรับเครื่องมือตรวจสอบรีจิสทรี "
- ^ " วิธีการสำรอง ข้อมูลแก้ไข และกู้คืนรีจิสทรีใน Windows NT 4.0" support.microsoft.com
- ^ "เอกสารอ้างอิงทางเทคนิคเกี่ยวกับรีจิสทรี: แหล่งข้อมูลที่เกี่ยวข้อง" . ไมโครซอฟต์. สืบค้นเมื่อ9 กันยายน 2011 .
- ^ Whitwam, Ryan (กรกฎาคม 2019). "Microsoft ยกเลิกการสำรองข้อมูลรีจิสทรีอัตโนมัติใน Windows 10" . ExtremeTech . สืบค้นเมื่อ1 กรกฎาคม 2019 .
- ^ "วิธีการทำงานของนโยบายกลุ่มหลัก" . ไมโครซอฟต์ . 2 กันยายน 2552 . สืบค้นเมื่อ13 สิงหาคม 2555 .
- ^ "บทที่ 26 – ไฟล์เริ่มต้นและรีจิสทรี" . ไมโครซอฟต์. สืบค้นเมื่อ3 มีนาคม 2551 .
- ^ "ชุดเครื่องมือความเข้ากันได้ของแอปพลิเคชัน Microsoft เวอร์ชัน 5.0" . Microsoft . สืบค้นเมื่อ26 กรกฎาคม 2551 .
- ^ a b Ionescu, Mark Russinovich, David A. Solomon, Alex (2012). "Registry Internals". Windows internals (ฉบับที่ 6). เรดมอนด์, วอชิงตัน: Microsoft Press. ISBN 978-0-7356-4873-9.
{{cite book}}: CS1 maint: multiple names: authors list ( link ) - ^ "ข้อกำหนดไดเร็กทอรีพื้นฐาน XDG" . standards.freedesktop.org .
- ^ "ไดเร็กทอรีแอปพลิเคชัน" . เก็บถาวรจากต้นฉบับเมื่อวันที่ 27 พฤษภาคม 2555 . เรียกดูเมื่อวันที่ 17 พฤษภาคม 2555 .
- ^ a b "กรณีศึกษาเกี่ยวกับปัญหาที่น่ารำคาญที่สุด 132 ประการของระบบปฏิบัติการอื่นที่ไม่ใช่ RISC OS" สืบค้นเมื่อ 3 เมษายน 2555หน้าเว็บจากเว็บไซต์ riscos.com ที่กล่าวถึงในข้อ 82 และ 104
- ^ "ทัวร์ RISC OS" . สืบค้นเมื่อ 19 กรกฎาคม 2550 .
- ^ "สารบัญผลิตภัณฑ์ RISC OS" . 2 พฤศจิกายน 2549 . สืบค้นเมื่อ1 เมษายน 2555 .
{{cite web}}: CS1 maint: บริการเก็บถาวรที่เลิกใช้แล้ว ( ลิงก์ ) - ^ 3.2 การใช้งาน Registry และ Regedit (คู่มือผู้ใช้ Wine)
ลิงก์ภายนอก
- ข้อมูลและเอกสารอ้างอิงเกี่ยวกับ Windows Registryใน MSDN Library
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ รีจิสทรีของ Windows
รีจิสทรี ของ Windows เป็น ฐานข้อมูลแบบลำดับชั้น ที่จัดเก็บ การตั้งค่า ระดับต่ำ สำหรับ ระบบปฏิบัติการ Microsoft Windows และสำหรับแอปพลิเคชันที่เลือกใช้รีจิสทรี เคอร์เนล ไดรเวอร์...
เหตุผล
ก่อนที่จะมี Windows Registry ไฟล์ . INI จะจัดเก็บการตั้งค่าของแต่ละโปรแกรมเป็น ไฟล์ข้อความ หรือ ไฟล์ไบนารี ซึ่งมักจะอยู่ในตำแหน่งที่ใช้ร่วมกันซึ่งไม่ได้ให้การตั้งค่าเฉพาะผู้ใช้ในสถานการณ์ที่มีผู้ใช้หลายคน ในทางตรงกันข้าม Windows Registry...
กุญแจและค่า
รีจิสทรีประกอบด้วยองค์ประกอบพื้นฐานสองอย่าง ได้แก่ คีย์ และ ค่า คีย์ รีจิสทรี เป็นวัตถุที่ทำหน้าที่เป็นภาชนะบรรจุ คล้ายกับโฟลเดอร์ ส่วน ค่า รีจิสทรี เป็นวัตถุที่ไม่ทำหน้าที่เป็นภาชนะบรรจุ คล้ายกับไฟล์ คีย์อาจมีค่าและคีย์ย่อยอยู่ภายใน...
คีย์รูท
โดยทั่วไปแล้วคีย์ที่ระดับรากของฐานข้อมูลแบบลำดับชั้นจะถูกตั้งชื่อตามคำจำกัดความของ Windows API ซึ่งทั้งหมดเริ่มต้นด้วย HKEY [ 2 ] คีย์เหล่านี้มักจะย่อเป็นชื่อย่อสามหรือสี่ตัวอักษรที่ขึ้นต้นด้วย "HK" (เช่น HKCU และ HKLM ) ในทางเทคนิคแล้ว...