سجل Windows
السياق والتاريخ
-
قبل Windows 95
- تم تخزين التكوين في ملفات نصية (INI) موزعة في أماكن مختلفة.
- المشاكل: التكرار، التناقضات، صعوبة الإدارة المركزية.
-
إدخال السجل
- Windows 95 يقدم قاعدة السجل (Registry): مخزن هرمي مركزي.
- الهدف: توحيد تكوين النظام والتطبيقات.
لماذا يوجد السجل
-
المركزية
- استبدال ملفات INI وCFG و.INF المتعددة.
-
الهيكلة
- شجرة مفتاح/قيمة، أكثر تنظيمًا من الملفات المسطحة.
-
الأداء والذرية
- قراءة/كتابة محسنة، دعم للمعاملات الجزئية.
-
الأمان
- ACL (أذونات على نمط NTFS) على كل مفتاح سجل.
الهيكل العام
السجل منظم في hives (خلية). كل خلية تمثل ملفًا كبيرًا مخزنًا على القرص (تحت %SystemRoot%\System32\Config لخلية الجهاز، وفي ملف تعريف المستخدم لـ HKCU).
| Hive | Fichier | Contenu principal |
|---|---|---|
HKEY_LOCAL_MACHINE (HKLM) | SYSTEM, SOFTWARE, etc. | تكوين الجهاز (جميع المستخدمين) |
HKEY_CURRENT_USER (HKCU) | %USERPROFILE%\NTUSER.DAT | تكوين الملف الشخصي الحالي |
HKEY_USERS | Tous les profils utilisateurs | يجمع HKCU لكل مستخدم |
HKEY_CLASSES_ROOT (HKCR) | Fusion HKLM\SOFTWARE\Classes et HKCU\Software\Classes | ارتباطات الملفات، COM |
HKEY_CURRENT_CONFIG | Lien 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و-ConfirmRemove-Item -Path 'HKCU:\Software\Test' -Recurse -WhatIf -
تفضيل PowerShell على
reg.exeللأتمتة -
تقييد ACL
- التحقق/التعديل عبر
Get-Acl/Set-Aclإذا لزم الأمر.
- التحقق/التعديل عبر
تذكر
- السجل هو قلب تكوين Windows، مركزي وهرمي.
- يستبدل ملفات INI: أكثر قوة، أمانًا، وأداءً.
- كل خلية تمثل سياقًا (جهاز/مستخدم).
- يوفر PowerShell موفرًا أصليًا للتنقل وتعديل السجل في السكربتات.
- دائمًا قم بالنسخ الاحتياطي والاختبار قبل أي تعديل في الإنتاج.