Tìm hiểu về Registry của Windows 2003

Trong bài báo này, chúng tôi sẽ giới thiệu cho các bạn về Registry của Windows 2003, xem xét qua xem nó là gì, cách cấu hình từ xa, cách backup và restore nó như thế nào. Tài liệu này được dự định là một tài liệu tham khảo giúp bạn có thể tìm hiểu phần lõi hệ điều hành thế hệ sau của Microsoft.

Giới thiệu

Được giới thiệu ngay trong Windows 95, Registry là một trung tâm cho người dùng duy nhất và dữ liệu cấu hình máy tính. Trong các mục cơ bản, nó là một cơ sở dữ liệu lớn nắm giữ tất cả các thông tin cấu hình của Windows 2003 – các thiết lập có liên quan đến tài khoản người dùng, phần cứng máy và các ứng dụng. Mọi thứ từ sở thích của người dùng (như màu nền, bộ bảo vệ màn hình,…) đến các mật khẩu tài khoản được mã hóa đều nằm trong đó.

Registry được đưa ra để thay thế các file .INI cũ (file lưu các thiết lập cấu hình bên trong). Các file .INI cũng có một số ưu điểm vì chúng ngắn và dễ soạn thảo, tuy nhiên cũng có một số hạn chế như các giới hạn về kích thước và không hỗ trợ cho nhiều người dùng. Với registry, chúng ta có thể loại bỏ những hạn chế đó và làm cho mọi thứ trở nên dễ dàng hơn khi khôi phục các thiết lập sau khi có hỏng hóc xuất hiện, điều khiển truy cập và kiểm tra các thay đổi của hệ thống. Registry có một số ưu điểm, nếu bạn đang cài đặt một ứng dụng, lúc đang ghi một chùm khóa vào thanh registry có một lỗi về nguồn cấp thì mọi thứ đều không bị ảnh hưởng khi hệ thống được backup và chạy trở lại.

Lưu ý:

Một số ứng dụng vẫn sử dụng file .INI để lưu các thiết lập người dùng hoặc các ngôn ngữ cho GUI. Ví dụ, tại thời điểm viết bài này, tôi đã mở language.ini , file được tìm thấy trong thư mục của một trong những ứng dụng đã được cài đặt của tôi và đã thay đổi một số chuỗi trong đó. Sau đó khi mở ứng dụng thì GUI đã thể hiện văn bản của tôi trên nó thay vì văn bản mặc định.

Đa số các thông tin trong Registry được đặt một cách tự động bởi Windows khi cài đặt hệ điều hành. Phần còn lại đến từ các tiện ích và ứng dụng thông qua trình cài đặt của họ. Bạn cũng có thể tự soạn thảo dữ liệu Registry, điều đó cho phép có thể điều chỉnh, kích hoạt hoặc sửa một số thiết lập nào đó.

Cảnh báo!

Bất kỳ thay đổi nào thực hiện với Registry bằng Registry Editor đều là cố định, không có nút “undo”, vì vậy bạn phải cẩn thận với những gì thực hiện ở đây. Chỉ can thiệp vào Registry nếu bạn biết mình đang thực hiện những gì, bởi vì hậu quả cho các lỗi gây ra với Registry có thể rất nghiêm trọng (ví dụ tồi tệ nhất là bạn sẽ phải cài đặt lại Windows). Nguyên tắc chủ chốt khi thực hiện các thao tác với Registry là bạn luôn thực hiện một bản backup để phòng khi tình huống xấu có thể xảy ra.

Dưới đây là một hình ảnh thể hiện cấu trúc của Registry, nó được tạo thành bằng 5 nhánh con (sẽ được thảo luận trong phần tiếp theo của bài viết này). Bạn có thể duyệt đến một khóa từ phần bên trái và các giá trị của nó sẽ được hiển thị bên cửa sổ phía phải. Để mở Registry Editor, bạn kích Start > Run… và đánh vào đó “regedit.exe”.


Hình 1: Regedit.exe đang hiển thị cấu trúc của Registry

Thiết lập các cho phép

Bạn có thể thiết lập cho phép trên các nhánh con hoặc khóa riêng biệt để người dùng được phép hoặc không được phép truy cập. Mặc định, người dùng được phép truy cập đọc trong khi các quản trị viên được phép đọc và ghi trên hầu hết các khóa.

Khi kiểm tra một ứng dụng .NET gần đây, tôi đã phát hiện ra rằng hành vi cài đặt không gán đúng các cho phép cho một khóa nào đó thì một phần của ứng dụng có thể bi hỏng. Khi thiết lập đúng các cho phép, mọi thứ lại làm việc bình thường trở lại. Trong trường hợp này nó là lỗi của hãng và may mắn thay tôi lại có thể sửa được lỗi này thông qua regedit.exe.

Để thiết lập các cho phép, bạn mở regedit.exe, kích phải vào khóa và chọn “Permissions…”. Windows lúc này sẽ hiển thị một danh sách ACL cho khóa đó và bạn có thể soạn thảo các cho phép như thực hiện trên file NTFS hay thư mục.


Hình 2: Danh sách ACL cho thiết lập các cho phép trên khóa SOFTWARE

Cũng không thừa khi nói rằng bạn phải cẩn thận với những ai, cái gì mà bạn cho phép và hạn chế cho phép.

5 nhánh nhỏ của Registry

5 nhánh nhỏ dưới đây của Registry gồm nhóm logic thông tin Registry được gọi là các nhánh nhỏ (SubTrees). Có 5 phần chính của Registry và mỗi phần trong chúng giữ một tập các khóa con. Khi tiến hành thay đổi, bạn có khả năng thực hiện hầu hết công việc trong nhánh _MACHINE và _USER.

NhánhMô tả
HKEY_CLASSES_ROOT HKEY_CLASSES_ROOT là nhánh gồm có dữ liệu liên quan tới các kiểu file với các ứng dụng và cấu hình cho đối tượng COM.
HKEY_LOCAL_USERNhánh này cũng được biết đến với tên viết tắt HKCU, HKEY_LOCAL_USER gồm các thiết lập và sở thích cho người dùng hiện đã đăng nhập vào hệ thống. Các thiết lập này là động và duy nhất với mỗi người dùng.
HKEY_LOCAL_MACHINEĐược viết tắt là HKLM, HKEY_LOCAL_MACHINE gồm các thông tin về phần cứng hiện đã được cài đặt và các thiết lập cho hệ thống đang chạy trên máy. Bình thường nó tĩnh tại đối với tất cả người dùng cho tới khi có môt sự thay đổi nào đó được thực hiện.
HKEY_USERSNhánh này gồm có một con trỏ trỏ đến HKEY_LOCAL_USER và profile người dùng mặc định (một mẫu đã sử dụng khi gán một profile cho những người dùng mới).
HKEY_CURRENT_CONFIGNhánh này lưu dữ liệu cấu hình cho phần cứng hiện tại và trỏ đến HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles

Các kiểu dữ liệu đã định nghĩa cho Registry

Phía bên phải của trình soạn thảo Registry, bạn sẽ thấy nhiều kiểu dữ liệu khác nhau và các giá trị của chúng.

Kiểu dữ liệuMô tả
REG_SZChuỗi giá trị đơn giản. thường là một URL, đường dẫn hoặc số cổng.
REG_BINARYDữ liệu nhị phân biểu diễn trong định dạng hexa.
REG_DWORDKiểu dữ liệu khác của REG_BINARY nhưng có chiều dài 4 byte
REG_MULTI_SZ Một chuỗi ký tự kích thước cho phép bạn có thể nhập vào số các tham số trong thực thể giá trị đơn này.
REG_EXPAND_SZ Là một chuỗi ký tự kích thước thay đổi có thể gồm có các thông tin động thay đổi khi khởi động (như %username%, thành phần có kích thước khác nhau đối với mỗi tên)

Cấu hình Registry từ xa

Regedit.exe cho phép bạn cấu hình từ xa Registry của các máy tính khác một cách nhanh chóng và dễ dàng. Tất cả những gì bạn cần là quyền phê chuẩn (quyền quản trị) để thực hiện.

Mẹo:
Hãy bảo đảm rằng Group Policy không nằm ở vị trí không cho phép các kết nối Registry từ xa.

Mở regedit.exe và từ menu File bạn chọn “Connect Network Registry…”. Đánh tên máy tính hoặc nhấn [Advanced…] và tìm kiếm máy tính, sau đó nhấn OK. Sau khi nhập vào đúng các thông tin chi tiết, registry của máy tính điều khiển xa được nạp vào giao diện điều khiển như nó là máy tính cục bộ.

Khi bạn đã thực hiện xong việc thay đổi, hãy chọn từ “Disconnect Network Registry…” menu File khi đó regedit.exe sẽ dừng kết nối.

Bạn nên nhớ rằng bất kỳ thay đổi nào tạo ra đểu sẽ ảnh hưởng trên máy tính từ xa ngay lập tức, hoặc một số trường hợp sau khi khởi động lần kế tiếp.


Hình 3: Màn hình hiển thị kết nối Registry từ xa

Khi bạn kết nối một Registry từ xa, bạn chỉ có thể chỉnh sửa trong các khóa HKEY_LOCAL_MACHINE và HKEY_USERS.

Trong ví dụ này, từ một máy tính cục bộ, được kết nối đến một máy chủ khác có tên gọi là ZTABONA và có thể tạo những thay đổi cần thiết đối với các khóa đã đề cập ở trên.

Việc sao lưu dự phòng và khôi phục Registry

Có ba phương pháp sao lưu dự phòng (backup) Registry trong Windows 2003. Bạn có thể backup/restore toàn bộ Registry bằng tiện ích Windows Backup, import/export các nhánh nào đó hoặc khóa từ regedit.exe, hoặc sử dụng một công cụ nhỏ là reg.exe từ dòng lệnh. Phần sử dụng công cụ này sẽ được giải thích chi tiết hơn ở phần dưới.

Tiện ích Backup and Restore

Từ menu Start, bạn điều hướng đến Programs > Accessories > System Tools và mở Backup - để vào tiện ích Backup and Restore Wizard hoặc có thể đi thẳng vào tiện tích Backup and Restore (phụ thuộc vào các thiết lập bạn đã chọn từ trước).


Hình 4: Tiện ích Backup and Restore

Từ tab Backup, bạn mở My Computer và chọn hộp kiểm System State.

Lưu ý:

Trên bộ điều khiển miền, việc sao chép dự phòng trạng thái hệ thống cũng sao chép dự phòng luôn cả Active Directory, các file khởi động, Certificate Server (nếu đã cài đặt), Registry của lớp đối tượng COM và SYSVOL, một phần của Registry đầy đủ.

Chọn một vị trí để file backup được lưu tại đó (thường là thiết bị lưu trữ di động hoặc partition khác) và kích Start Backup. Một hộp thoại mới sẽ xuất hiện hiển thị trạng thái của thủ tục backup. Khi backup được hoàn tất, nhấn OK và đóng cửa sổ lại.

Để khôi phục một file backup, bạn vào tab Restore and Manage Media và chọn Tools > Catalog a backup file. Duyệt đến vị trí của file backup đã được lưu và chọn nó. Chọn những gì bạn muốn khôi phục (trong trường hợp này nó là toàn bộ trạng thái hệ thống) và nhấn nút Start Restore

Import/Export các File của Registry

Khi export một phần của Registry, nó được lưu bởi một file .reg, khi được thực thi sẽ đưa các giá trị của nó quay trở lại Registry. Điều này thường được sử dụng khi một hãng phần mềm nào đó cần một máy khách để kích hoạt “Chế độ debug”.

Để export một file Registry, bạn chọn khóa mong muốn từ panel bên trái của regedit.exe, kích chuột phải vào nó và chọn Export. Chọn nơi bạn muốn file .reg được lưu và nhấn Save. Khi file đã được export, bạn có thể chỉnh sửa nó bằng Notepad.exe hoặc bất kỳ phần mềm soạn thảo văn bản nào.

Ví dụ một file .reg:

Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Control Panel\Accessibility\MouseKeys]
"Flags"="62"
"MaximumSpeed"="80"
"TimeToMaximumSpeed"="3000"

Để inport một file .reg, bạn chỉ cần kích đúp vào nó sau đó nhấn Yes. Thông tin sau đó sẽ được bổ sung vào Registry.


Hình 5: Thông báo xác nhận của bộ soạn thảo Registry

Chỉ import các thông tin cho Registry nếu bạn biết chính xác khóa gồm những gì.

Lưu ý:

Bạn cũng có thể import/export một file Registry bằng công cụ dòng lệnh reg.exe.

Sử dụng dòng lệnh

Sử dụng reg.exe, bạn có thể backup và restore các phần của Registry bằng một số lệnh đơn giản. Công cụ này sẽ cho phép bạn backup một nhánh con trong khi đó hệ thống vẫn đang chạy.

Với mục đích giải thích, chúng tôi sẽ minh chứng về cách sử dụng REG SAVE và REG RESTORE.

REG save

Sử dụng lệnh REG save để lưu các khóa gốc cho việc khôi phục sau này. Cú pháp của lệnh này là:

reg save

Trong ví dụ của chúng tôi, sử dụng cú pháp ở trên để lưu HKEY_CLASSES_ROOT, HKEY_CLASSES_CONFIGHKEY_CLASSES_USER (bạn có thể xem hình bên dưới).


Hình 6: Sử dụng công cụ dòng lệnh reg.exe để lưu các khóa Registry

Các file Registry sẽ được lưu vào thư mục cụ thể nào đó, như thể hiện trong hình dưới đây.


Hình 7: Thư mục lưu các khóa Registry

Sử dụng lệnh “reg restore”, bạn có thể khôi phục các khóa đã lưu từ trước. Trong ví dụ của chúng tôi, nếu muốn khôi phục HKEY_CLASSES_ROOT tôi phải chạy lệnh dưới đây tại dấu nhắc lệnh.

Reg restore hkcr c:\regbackup\hkcr

Thực hiện tương tự như vậy với các khóa khác.

Kết luận

Tìm hiều về registry như thế nào, cách backup và restore ra sao sẽ mang đến cho bạn những kiến thức có giá trị. Đặc biệt với một quản trị viên bạn cần phải thấy được rằng việc chỉnh sửa registry đôi khi có thể trả lời được khá nhiều vấn đề. Nhiều người thích tìm hiểu registry nhưng có những người không muốn dính dáng tới nó vì chưa hiểu. Không nên quá sợ khi thực hiện các thay đổi, chỉ cần một điều là bạn phải cẩn thận và biết được chính xác những gì mình đang thực hiện.

Thứ Ba, 25/09/2007 09:15
52 👨 1.531
0 Bình luận
Sắp xếp theo