Cơ bản về Registry trong Windows

Wednesday, December 31, 2014
Hướng dẫn cơ bản về regedit, các lệnh regedit cơ bản , lập trình regedit, các mã lệnh đơn giản trong windows
Cơ bản về Registry trong Windows



1.1 Reg add
Công dụng: Tạo thêm một khóa con hoặc khoản mục dữ liệu mới cho Registry
Cú pháp:
reg add KeyName [/v EntryName | /ve] [/t DataType] [/s separator] [/d Value] [/f] [/?]
Ý nghĩa các tham biến:
KeyName : Chỉ ra đường dẫn đầy đủ của khóa con cần tạo
(hoặc khóa con chứa khoản mục dữ liệu cần tạo). Đối với máy ở xa, bạn hãy kèm theo tên máy trước đường dẫn của khóa con theo dạng thức \ComputerName\PathtoSubkey. Không ghi ComputerName sẽ khiến hoạt động thêm khóa con này diễn ra theo mặc định là trên máy tại chỗ. Bạn phải bắt đầu đường dẫn ấy bằng tên nhánh thích hợp. Các tên nhánh hợp lệ là
HKEY_CLASSES_ROOT HKCR
HKEY_CURRENT_USER HKCU
HKEY_LOCAL_MACHINE HKLM
HKEY_USERS HKU
HKEY_CURRENT_CONFIG HKCC
/v EntryName : chỉ ra tên của khoản mục dữ liệu được thêm bên dưới khóa con đã được chỉ định bới KeyName
/ve : Chỉ ra rằng khoản mục dữ liệu được thêm vào Registry không có giá trị
/t DataType : Chỉ ra kiểu dữ liệu của khoản mục dữ liệu đó (xem thêm phần Phụ chú ở phía dưới). DataType phải là một trong nhóm sau:
REG_BINARY
REG_DWORD
REG_DWORD_BIG_ENDIAN
REG_DWORD_LITTLE_ENDIAN
REG_EXPAND_SZ
REG_FULL_RESOURCE_DESCRIPTOR
REG_LINK
REG_MULTI_SZ
REG_SZ
/s separator : Chỉ ra ký tự dùng để phân cách nhiều mục giá trị của dữ liệu mới. Tham biến này được sử dụng khi kiểu dữ liệu được chỉ ra là REG_MULTI_SZ và có nhiều mục giá trị cần được liệt kê ra. Nếu không được chỉ ra thì ký tự phân cách mặc định là ( là ký tự NULL, dùng để kết thúc chuỗi)
/d value :Chỉ ra giá trị của khoản mục dữ liệu mới
/f : Tạo thêm khóa con hoặc khoản mục giá trị ấy ngay mà không yêu cầu
xác nhận
/? : Hiển thị trợ giúp tại dòng lệnh
Chú ý :
- Không thể tạo thêm một nhánh Registry bằng chức năng này
Mã hồi đáp Ý nghĩa
0 Thành công
1 Thất bại
Ví dụ
reg add /? : hỗ trợ cách dùng lệnh reg add
reg add “HKCU\Software\Microsoft\Winmine” /v Name3 /t REG_SZ /d Anonymous
reg add “HKCU\Software\Microsoft\Winmine” /v Time3 /t REG_DWORD /d 5
reg add HKLM\Software\MyCo /v Path /t REG_EXPAND_SZ /d %%systemroot%%
Ý nghĩa lệnh này: Tại khóa con HKLM\Software\MyCo tạo một khoản mục dữ liệu tên Path kiểu REG_EXPAND_SZ có giá trị %systemroot%
Chú ý : Sử dụng hai dấu %% đối với kiểu dữ liệu REG_EXPAND_SZ
1.2 Reg compare
Công dụng: So sánh các khóa con hoặc khoản mục giá trị Regsitry được chỉ định
Cú pháp:
reg compare KeyName1 KeyName2 [/v EntryName | /ve] [/oa | /od | /os | /on] [/s]
Ý nghĩa các tham biến
KeyName1, KeyName2 : Chỉ ra đường dẫn đầy đủ của hai khóa con cần so sánh (xem thêm mục 1.1 phần KeyName). Nếu chỉ định máy ở xa thì chỉ có thể dùng các nhánh HKLM và HKU
/v EntryName : So sánh một khoản mục dữ liệu cụ thể bên dưới các khóa con KeyName1 và KeyName2
/ve : Chỉ ra rằng chỉ những khoản mục dữ liệu nào không có giá trị mới được so sánh
Khóa chuyển - Ý nghĩa
/oa : Chỉ định rằng tất cả những chỗ khác biệt hoặc trùng khớp đều được hiển thị
/od : Chỉ định rằng chỉ những chỗ khác biệt mới được hiển thị. Đây là cách hành xữ mặc định/os : Chỉ định rằng chỉ có những chỗ trùng khớp mới được hiển thị/on : Chỉ định rằng chẳng có gì được hiển thị
/s : So sánh tất cả các khóa con và khoản mục giá trị
/? : Hiển thị trợ giúp tại dòng lệnh
Mã hồi đáp Ý nghĩa
0 So sánh thành công, kết quả là giống nhau
1 So sánh thất bại
2 So sánh thành công và tìm thấy những chỗ khác biệt
Ví dụ
reg compare /? : hỗ trợ cách dùng lệnh reg compare
reg compare “hkcu\software\microsoft\winmine”
“hkcu\software\microsoft\winmine” /od /s
1.3 Reg copy
Công dụng: Sao chép một khoản mục dữ liệu Registry đến một vị trí được chỉ định trong máy tại chỗ hoặc ở xa
Cú pháp:
reg copy KeyName1 Keyname2 [/s] [/f] [/?]
ý nghĩa tham biến:
KeyName1, KeyName2 : Chỉ ra đường dẫn khóa con cần sao chép (xem thêm mục 1.1 phần KeyName). Nếu chỉ định máy ở xa thì chỉ có thể dùng các nhánh HKLM và HKU. Trong đó, KeyName1 là đường dẫn nguồn, KeyName2 là đường dẫn đích
/s : Sao chép tất cả các khóa con và khoản mục bên dưới khóa con được
chỉ định
/f : Sao chép khóa con mà không yêu cầu xác nhận
/? : Hiển thị trợ giúp tại dòng lệnh
Mã hồi đáp Ý nghĩa
0 Thành công
1 Thất bại
Ví dụ:
reg copy /? : hỗ trợ cách dùng lệnh reg copy
reg copy “hkcu\software\microsoft\winmine”
“hkcu\software\microsoft\winminebk” /s /f
1.4 Reg delete
Công dụng: Xóa một khóa con hoặc những khoản mục giá trị nào đó
khỏi Registry
Cú pháp:
reg delete KeyName [/v EntryName | /ve | /va] [/f] [/?]
Ý nghĩa các tham biến:
KeyName : Chỉ định đường dẫn đầy đủ của khóa con cần xóa (hoặc chứ các khảo mục dữ liệu cần xóa) (xem thêm mục 1.1 phần KeyName)
/ve EntryName : Xóa đi khoản mục dữ liệu cụ thể EntryName bên dưới khóa con KeyName được chỉ định. Nếu không có khoản mục nào được chỉ ra thì tất cả các khoản mục dữ liệu và khóa con bên dưới khóa con KeyName sẽ bị xóa đi
/ve : Chỉ định xóa những khoản mục dữ liệu không có giá trị mới bị xóa
/va : Xóa tất cả các khoản mục dữ liệu bên dưới khóa con KeyName được chỉ định. Các khóa con bên dưới khóa con được chỉ định sẽ không bị xóa bới tham biến này
/f : Xóa khóa con hoặc khoản mục dữ liệu có sẵn với tên được chỉ định trong Registry mà không yêu cầu xác nhận
/? : Hiên thị trợ giúp dòng lệnh
Mã hồi đáp Ý nghĩa
0 Thành công
1 Thất bại
Ví dụ:
reg delete /? : hỗ trợ cách dùng lệnh reg delete
reg delete “hkcu\software\microsoft\winmine” /v Name1
reg delete “hkcu\software\microsoft\winmine” /v Time1
reg delete “hkcu\software\microsoft\winmine” /va
1.5 Reg export
Công dụng: Tạo ra một bản sao của các khóa con, các khoản mục dữ liệu, và các giá trị được chỉ định thành một file .reg để nó có thể chuyển sang các server khác hoặc có thể backup lại dễ dàng
Cú pháp:
reg export KeyName FileName [/?]
Ý nghĩa các tham biến:
KeyName : Chỉ ra đường dẫn đầy đủ của khóa con cần xuất (xem thêm mục 1.1 phần KeyName). Chỉ hoạt động trên máy tại chỗ
FileName : Chỉ ra tên và đường dẫn của file cần được xuất. File có phần mở rộng là .reg. Nếu không chỉ định đường dẫn thì lệnh sẽ dùng đường dẫn hiện tại
/? : Hiển thị thông tin trợ giúp tại dấu nhắc lệnh
Mã hồi đáp Ý nghĩa
0 Thành công
1 Thất bại
Ví dụ :
reg export /? : hỗ trợ cách dùng lệnh reg export
reg export “hkcu\software\microsoft\winmine” “%userprofile%\desktop\bak.reg”
1.6 Reg import
Công dụng: Sao chép một file chứa các khóa con, các khảon mục dữ liệu, và các giá trị đã được xuất từ một Registry nào đó vào Registry của máy tại chỗ
Cú pháp:
reg import FileName [/?]
Ý nghĩa các tham biến:
FileName : Chỉ ra tên và đường dẫn của file mà sẽ được sao chép vào Registry của máy tại chỗ. File này cần được tạo ra trước đó (bằng lệnh reg export), hoặc được soạn thảo bằng các trình soạn thảo văn bản đơn giản nào đó nhưng phải đúng cú pháp. Nếu không chỉ định đường dẫn thì lệnh sẽ dùng đường dẫn hiện tại
/? : Hiển thị thông tin trợ giúp tại dòng lệnh
Mã hồi đáp Ý nghĩa
0 Thành công
1 Thất bại
Ví dụ:
reg import /? : hỗ trợ cách dùng lệnh reg import
reg import “%userprofile%\desktop\bak.reg”
1.7 Reg load
Công dụng: Ghi những khóa con và khoản mục dữ liệu đã lưu trong một file trước đó ngược trở lại vào một khóa con khác trong Registry. File được lưu này được lưu dự trù là một file cất giữ tạm, có thể được dùng để giải quyết trục trặc hoặc chỉnh sửa các khoản mục dữ liệu của Registry
Cú pháp:
reg load KeyName FileName [/?]
Ý nghĩa các tham biến
KeyName : Chỉ ra đường dẫn đầy đủ của khoá con cần được ghi (xem thêm
mục 1.1 phần KeyName)
FileName : Chỉ ra tên và đường dẫn của file sẽ được nạp. File này phải được tạo bằng lệnh reg save, có phần mở rộng là .hiv. Nếu không chỉ định đường dẫn thì lệnh sẽ dùng đường dẫn hiện tại
/? : Hiển thị thông tin trợ giúp tại dấu nhắc lệnh
Mã hồi đáp Ý nghĩa
0 Thành công
1 Thất bại
Ví dụ:
reg load /? : hỗ trợ cách dùng lệnh reg load
reg load “hkcu\software\microsoft\winmine” winmbak.hiv
1.8 Reg query
Công dụng: Hồi đáp bằng một danh sách của cấp kế tiếp các khoá con và khoản mục dữ liệu nằm bên dưới một khoá con cụ thể trong Registry
Cú pháp:
reg query KeyName [/v EntryName | /ve] [/s] [/?]
Ý nghĩa các tham biến
KeyName : Chỉ ra đường dẫn đầy đủ của khoá con (xem thêm mục 1.1 phần KeyName). Đối với máy ở xa thì chỉ có thể dùng các nhánh con HKLM và HKU
/v EntryName : Chỉ định là phải hồi đáp bằng khoản mục dữ liệu cụ thể EntryName cùng với giá trị của nó. Tham biến này chỉ có tác dụng hồi đáp những khoản mục dữ liệu ở cấp ngay bên dưới khoá con được chỉ định. Những khoản mục dữ liệu nào nằm trong các khoá con bên dưới khoá con được chỉ định sẽ không được nêu ra. Khi không ghi ra EntryName , mục này sẽ hồi đáp bằng tất cả các khoản mục dữ liệu bên dưới khoá con được chỉ định
/ve : Chỉ định rằng những khoản mục dữ liệu nào không có giá trị mới được hồi đáp
/s : Hồi đáp tất cả các khoá con và khoản mục dữ liệu ở tất cả các cấp từ KeyName xuống dưới cùng. Nếu không có tham biến này thì chỉ hồi đáp cấp các khoá con và khoản mục dữ liệu kề dưới thôi
/? : Hiển thị thông tin trợ giúp tại dấu nhắc lệnh
Mã hồi đáp Ý nghĩa
0 Thành công
1 Thất bại
Ví dụ:
reg query /? : hỗ trợ cách dùng lệnh reg query
reg query “hklm\system\currentcontrolset\control\session manager” /v
reg query “hkcu\software\microsoft\winmine” /s
1.9 Reg restore
Công dụng: Ghi những khoá con và khoản mục dữ liệu đã lưu ngược trở lại Registry của máy tại chỗ
Cú pháp:
reg restore KeyName FileName [/?]
Ý nghĩa các tham biến:
KeyName : Chỉ ra đường dẫn đầy đủ của khoá con cần ghi trở lại Registry (xem thêm mục 1.1 phần KeyName). Chỉ hoạt động với máy tại chỗ
FileName : Chỉ ra tên và đường dẫn của File sẽ được ghi ngược trở lại Registry. File này phải được tạo ra trước đó bằng lệnh reg save và có phần mở rộng là .hiv. Nếu không chỉ định đường dẫn thì lệnh sẽ dùng đường dẫn hiện tại
/? : Hiển thị thông tin trợ giúp tại dấu nhắc lệnh
Mã hồi đáp Ý nghĩa
0 Thành công
1 Thất bại
Chú ý:
- Lệnh này dùng để ghi đè lên nhưng khoản mục dữ liệu trong Registry nào đã được chỉnh sửa và dẫn đến hậu quả xấu, Trước khi chỉnh sửa các khoản mục dữ liệu nào đó của Registry, bạn hãy ghi lưu khoá con chứa chúng bằng lệnh reg save. Nếu việc chỉnh sửa ấy dẫn đến trục trặc, bạn chỉ việc khôi phục khoá con kia bằng lệnh này
Ví dụ:
reg restore /? : hỗ trợ cách dùng lệnh reg restore
reg restore “hkcu\software\microsoft\winmine” wmbkup.hiv
1.10 Reg save
Công dụng: Ghi lưu một bản sao của các khoá con, các khoản mục dữ liệu, và các giá trị được chỉ định của Registry vào một file được chỉ định
Cú pháp:
reg save KeyName FileName [/?]
Ý nghĩa các tham biến:
KeyName : Chỉ ra đường dẫn đầy đủ của khoá con cần ghi lưu (xem thêm mục 1.1 phần KeyName). Đối với máy ở xa thì chỉ có thể dùng các nhánh con HKLM
và HKU
FileName : Chỉ ra tên và đường dẫn của file được tạo. Nếu không chỉ định đường dẫn thì lệnh sẽ dùng đường dẫn hiện tại
/? : Hiển thị thông tin trợ giúp tại dấu nhắc lệnh
Mã hồi đáp Ý nghĩa
0 Thành công
1 Thất bại
Ví dụ :
reg save /? : hỗ trợ cách dùng lệnh reg save
reg save “hkcu\software\microsoft\winmine” backup.hiv
1.11 Reg unload
Công dụng: Gỡ bõ một phần của Registry, vốn trước đó đã được nạp vào bằng cách dùng lệnh reg load
Cú pháp:
reg unload KeyName [/?]
Ý nghĩa các tham biến:
KeyName : Chỉ ra đường dẫn đầy đủ của khoá con cần gỡ bỏ (xem thêm mục 1.1 phần KeyName). Đối với máy ở xa thì chỉ có thể dùng các nhánh con HKLM và HKU
/? : Hiển thị thông tin trợ giúp tại dấu nhắc lệnh
Mã hồi đáp Ý nghĩa
0 Thành công
1 Thất bại
Ví dụ:
reg unload /? : hỗ trợ cách dùng lệnh reg unload
reg unload “hkcu\software\microsoft\winminebk”
Phụ chú
- Để chạy các lệnh reg bạn vào Start -> RUN hoặc nhấn Windows + R, nhập vào lệnh. Tuy nhiên, reg.exe là một console application, tức là chỉ thấy trong môi trường DOS, do đó lệnh sau khi thực thi thì console cũng tự đóng, ta không thể biết kết quả của lệnh ra sao. Để thấy kết quả của lệnh, bạn nhập thêm vào trước lệnh reg : cmd /k
Ví dụ:
cmd /k reg add /?
cmd /k reg delete /?
- Ký hiệu quy ước quốc tế :
[ ] : Có hoặc không có cũng được
| : Hoặc
- Mã hồi đáp chỉ dùng để lập trình, nên người dùng bình thường không cần quan
tâm
Ví dụ:
CODE
reg add “HKLM\Software\Microsoft\Windows NT\CurrentVersion” /v
RegisteredOwner /t REG_SZ /d Caster-X /f
if errorlevel 0 (
echo/ Nhap thanh cong
) else (
echo/ Nhap that bai )
- Chuỗi ký tự trong DOS nếu chứa khoảng trắng thì phải đặt giữa cặp dấu ” “, không có khoảng trắng thì kg cần thiết. Chuỗi không phân biệt chữ hoa hay chữ thường
- Đối với các mục phần FileName, đường dẫn hiện tại có thể xem bằng cách sau:
Nhập cmd trong hộp thoại RUN, đường dẫn hiện tại là phần bên trái dấu nhắc Nếu không thấy phần bên trái thì nhập lệnh sau trong DOS : echo %cd%
Thông thường, nếu mở Command Prompt từ hộp thoại RUN thì đường dẫn hiện tại là %userprofile% (<ổ đĩa cài windows>:\Documents and Settings\<tên user>)
Nếu chạy Command Prompt ở chỗ nào khác thì đường dẫn hiện tại là nơi chạy Command Prompt
Kiểu dữ liệu
+ REG_BINARY
Tên : Giá trị nhị phân (Binary Value)
Mô tả ý nghĩa : Kiểu này lưu trữ dữ liệu nhị phân thô. Hầu hết thông tin về thành phần phần cứng được trữ với tính cách dữ liệu nhị phân và được hiển thị trong Registry Editor theo dạng thức thập lục phân
+ REG_DWORD
Tên : Giá trị từ kép (Dữ liệu kiểu DWORD)
Mô tả ý nghĩa : Kiểu này biểu diễn dữ liệu bằng một con số dài 4 bytes (tức một số nguyên 32 bit) và thường được dùng cho các giá trị luận lý (boolean, tức là chỉ có một trong hai khả năng : đúng hoặc sai, có hoặc không), chẳng hạn như “0″ là cấm (disable) và “1″ là được phép (enable). Nhiều thông số sành cho các trình điều khiển thiết bị và các dịch vụ kiểu này, và được hiển thị trong REGEDT32 theo dạng thức nhị phân, thập lục phân hoặc thập phân, hoặc trong REGEDIT theo dạng thức thập lục phân hoặc thập phân. Các kiểu dữ liệu có liên quan làREG_DWORD_LITTLE_ENDIAN (từ kép 32bit, với byte có trọng số thấp nhất nằm ở địa chỉ thấp nhất) và REG_DWORD_BIG_ENDIAN (từ kép 32 bit, với
byte có trọng số thấp nhất nằm ở địa chỉ cao nhất)
+ REG_EXPAND_SZ
Tên : Giá trị chuỗi khả triển (Expandable String Value)
Mô tả ý nghĩa : Kiểu này là một chuỗi dữ liệu có chiều dài thay đổi được. Kiểu dữ liệu này có chứa những biến (variable) mà sẽ được phân giải ra (thay thế bằng một chuỗi cụ thể) khi một ứng dụng hoặc dịch vụ nào đó gọi đến dữ liệu ấy.
Các chuỗi khả triển này không chỉ sử dụng trong các lệnh reg mà còn sử dụng tốt trong Windows và Command Prompt
+ REG_MULTI_SZ
Tên : Giá trị chuỗi đa mục (Multi-String Value)
Mô tả ý nghĩa : Kiểu này là một chuỗi đa mục (multiple string). Thường dùng để biểu diễn những giá trị có chứa các danh sách hoặc nhiều giá trị theo một dạng thức mà người ta có thể đọc được, các khoảng mục được ngăn cách trong chuỗi bởi ký tự NULL
+ REG_SZ
Tên : Giá trị chuỗi (dữ liệu kiểu chuỗi)
Mô tả ý nghĩa : Kiểu này là một chuỗi văn bản thông thường, có độ dài cố định (fixed-length), được dùng để biểu diễn những giá trị văn bản mà người ta có thể đọc được)
+ REG_LINK
Tên : Giá trị liên kết
Mô tả ý nghĩa : Đây là một chuỗi ký tự Unicode, định danh cho một liên kết tượng trưng (symbolic link). Được sử dụng trong nội bộ Registry, các ứng dụng không nên dùng kiểu này
+ REG_FULL_RESOURCE_DESCRIPTOR
Tên : Giá trị nhị phân (Binary Value)
Mô tả ý nghĩa : Kiểu này là một loạt các dãy lồng nhau, được thiết kế để lưu trữ một danh sách tài nguyên được sử dụng bởi một thiết bị phần cứng vật lý. Dữ liệu này được hệ thống phát hiện và ghi vào bên dưới khoá \HardwareDescription, và được hiển thị trong Registry Editor theo dạng thức thập lục phân với tính cách một giá trị nhị phân
(Tài liệu nghiên cứu : Những điều bạn chưa biết về Registry - NXB Phương
Đông, Help and Support center - Microsoft)

No comments:

Post a Comment