انتقل إلى المحتوى الرئيسي

سجل Windows

السياق والتاريخ​

  • قبل Windows 95

    • تم تخزين التكوين في ملفات نصية (INI) موزعة في أماكن مختلفة.
    • المشاكل: التكرار، التناقضات، صعوبة الإدارة المركزية.
  • إدخال السجل

    • Windows 95 يقدم قاعدة السجل (Registry): مخزن هرمي مركزي.
    • الهدف: توحيد تكوين النظام والتطبيقات.

لماذا يوجد السجل​

  • المركزية

    • استبدال ملفات INI وCFG و.INF المتعددة.
  • الهيكلة

    • شجرة مفتاح/قيمة، أكثر تنظيمًا من الملفات المسطحة.
  • الأداء والذرية

    • قراءة/كتابة محسنة، دعم للمعاملات الجزئية.
  • الأمان

    • ACL (أذونات على نمط NTFS) على كل مفتاح سجل.

الهيكل العام​

السجل منظم في hives (خلية). كل خلية تمثل ملفًا كبيرًا مخزنًا على القرص (تحت %SystemRoot%\System32\Config لخلية الجهاز، وفي ملف تعريف المستخدم لـ HKCU).

HiveFichierContenu principal
HKEY_LOCAL_MACHINE (HKLM)SYSTEM, SOFTWARE, etc.تكوين الجهاز (جميع المستخدمين)
HKEY_CURRENT_USER (HKCU)%USERPROFILE%\NTUSER.DATتكوين الملف الشخصي الحالي
HKEY_USERSTous les profils utilisateursيجمع HKCU لكل مستخدم
HKEY_CLASSES_ROOT (HKCR)Fusion HKLM\SOFTWARE\Classes et HKCU\Software\Classesارتباطات الملفات، COM
HKEY_CURRENT_CONFIGLien vers la config matérielle activeإعدادات الأجهزة الديناميكية

المفاتيح، المفاتيح الفرعية والقيم​

  • مفتاح: يعادل مجلدًا (يحتوي على مفاتيح فرعية وقيم).

  • قيمة: زوج (اسم، نوع، بيانات).

    • الأنواع الشائعة:

      • REG_SZ (سلسلة)،
      • REG_DWORD (عدد 32 بت)،
      • REG_QWORD (عدد 64 بت)،
      • REG_MULTI_SZ (مصفوفة سلاسل)،
      • REG_BINARY (بيانات خام).

محرر السجل (regedit.exe)​

  • الميزات

    • التنقل البصري في الشجرة.
    • تصدير/استيراد .reg.
    • تعديل ACL (انقر بزر الماوس الأيمن → أذونات).
  • تحذيرات

    • يتطلب غالبًا حقوق المسؤول.
    • قد يؤدي تعديل خاطئ إلى جعل Windows غير مستقر.

الموفر Registry في PowerShell​

يعرض PowerShell السجل كـ موفر من نوع نظام الملفات:

  • الجذور: HKLM: وHKCU:
  • إمكانية التنقل باستخدام Set-Location, Get-ChildItem, إلخ.

أمثلة عملية مع PowerShell​

خطر

اختبر هذه الأمثلة في جهازك الافتراضي

التنقل في السجل​

# لعرض خلايا الجهاز
Get-ChildItem -Path Registry::HKLM

# لعرض المفاتيح تحت SOFTWARE
Get-ChildItem -Path HKLM:\SOFTWARE

قراءة القيم​

# قيمة مفتاح
Get-ItemProperty -Path 'HKCU:\Control Panel\Desktop' -Name Wallpaper

# قراءة جميع الخصائص
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa'

اختبار وجود مفتاح أو قيمة​

# مفتاح موجود؟
Test-Path -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion'

# قيمة موجودة؟
(Get-ItemProperty -Path HKCU:\... -Name 'NomValeur' -ErrorAction SilentlyContinue) -ne $null

إنشاء مفتاح فرعي وقيمة​

warning

استبدل Username باسم المستخدم الخاص بك

# إنشاء المفتاح MyApp
New-Item -Path 'HKCU:\Software\Username\MyApp' -Force

# إضافة قيمة سلسلة
New-ItemProperty -Path 'HKCU:\Software\Username\MyApp' `
-Name 'MessageBienvenue' `
-Value 'Bienvenue dans MyApp!' `
-PropertyType String -Force

# إضافة DWORD
New-ItemProperty -Path 'HKCU:\Software\Username\MyApp' `
-Name 'Enabled' `
-Value 1 `
-PropertyType DWord -Force

تعديل قيمة موجودة​

# تعطيل بدء التشغيل السريع (مثال نظام)
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power' `
-Name 'HiberbootEnabled' `
-Value 0

حذف مفتاح أو قيمة​

warning

استبدل Username باسم المستخدم الخاص بك

# حذف قيمة
Remove-ItemProperty -Path 'HKCU:\Software\Username\MyApp' -Name 'MessageBienvenue'

# حذف المفتاح الفرعي بالكامل
Remove-Item -Path 'HKCU:\Software\Username\MyApp' -Recurse -Force

التصدير والاستيراد​

warning

استبدل Username باسم المستخدم الخاص بك

# تصدير فرع إلى .reg
reg export "HKCU\Software\Username\MyApp" C:\temp\myapp.reg /y

# استيراد .reg
reg import C:\temp\myapp.reg

مثال متقدم: تغيير خلفية الشاشة​

# تحديد مسار الصورة
$wall = 'C:\Images\montagne.jpg'

# تعديل المفتاح
Set-ItemProperty -Path 'HKCU:\Control Panel\Desktop' `
-Name 'Wallpaper' `
-Value $wall

# تحديث العرض
Add-Type -AssemblyName user32
[User32]::SystemParametersInfo(0x0014, 0, $wall, 0x0002)

الأمان والممارسات الجيدة​

  • النسخ الاحتياطي قبل التعديل

    reg export "HKLM\SOFTWARE" C:\backup\software-hive.reg /y
  • استخدام -WhatIf و-Confirm

    Remove-Item -Path 'HKCU:\Software\Test' -Recurse -WhatIf
  • تفضيل PowerShell على reg.exe للأتمتة

  • تقييد ACL

    • التحقق/التعديل عبر Get-Acl / Set-Acl إذا لزم الأمر.

تذكر​

  1. السجل هو قلب تكوين Windows، مركزي وهرمي.
  2. يستبدل ملفات INI: أكثر قوة، أمانًا، وأداءً.
  3. كل خلية تمثل سياقًا (جهاز/مستخدم).
  4. يوفر PowerShell موفرًا أصليًا للتنقل وتعديل السجل في السكربتات.
  5. دائمًا قم بالنسخ الاحتياطي والاختبار قبل أي تعديل في الإنتاج.