Cách đọc Registry bằng PowerShell – Hướng dẫn chi tiết từ cơ bản đến nâng cao cho quản trị hệ thống

cách đọc registry bằng powershell

Registry Windows là một cơ sở dữ liệu phân cấp chứa cấu hình hệ điều hành, ứng dụng và người dùng. Đọc Registry bằng PowerShell là kỹ năng thiết yếu cho quản trị viên hệ thống, chuyên viên bảo mật và nhà phát triển. PowerShell cung cấp nhiều cmdlet chuyên biệt cho phép truy xuất, lọc và xử lý dữ liệu Registry một cách linh hoạt. Bài viết này sẽ hướng dẫn bạn cách sử dụng PowerShell để đọc Registry hiệu quả, từ các lệnh cơ bản đến các kỹ thuật nâng cao.

Registry trong Windows là gì?

cách đọc registry bằng powershell - Hình 5

Registry là kho lưu trữ tập trung các thiết lập cho Windows và các chương trình cài đặt. Nó được tổ chức dưới dạng cây với các khóa (keys) và giá trị (values). Có năm hive chính:

    • HKEY_CLASSES_ROOT (HKCR) – Thông tin về các liên kết tệp và đối tượng COM
    • HKEY_CURRENT_USER (HKCU) – Cấu hình cho người dùng hiện tại
    • HKEY_LOCAL_MACHINE (HKLM) – Cấu hình cho tất cả người dùng và phần cứng
    • HKEY_USERS (HKU) – Cấu hình cho tất cả người dùng đã tải
    • HKEY_CURRENT_CONFIG (HKCC) – Cấu hình phần cứng hiện tại
Xem thêm:  Cách thiết lập duplicate display: Hướng dẫn chi tiết từ A-Z cho người mới bắt đầu

PowerShell coi Registry như một ổ đĩa đặc biệt (PSDrive) có tên là HKLM:HKCU:, cho phép bạn điều hướng và thao tác giống như hệ thống tệp.

Cách đọc Registry bằng PowerShell – Các lệnh cơ bản

cách đọc registry bằng powershell - Hình 4

Sử dụng Get-ChildItem để liệt kê các khóa con

Cmdlet Get-ChildItem (alias: dir, ls) dùng để xem danh sách các khóa con và giá trị bên trong một đường dẫn Registry. Ví dụ, để xem các khóa con bên trong HKLMSoftware:

Get-ChildItem -Path "HKLM:Software"

Lưu ý: PowerShell sử dụng dấu hai chấm sau tên hive. Nếu bạn muốn lấy toàn bộ cây con, thêm tham số -Recurse.

Sử dụng Get-ItemProperty để đọc giá trị của một khóa

Cmdlet Get-ItemProperty trả về tất cả các giá trị (values) bên trong một khóa cụ thể. Cú pháp đơn giản nhất:

Get-ItemProperty -Path "HKCU:Control PanelDesktop"

Kết quả hiển thị các thuộc tính như Wallpaper, ScreenSaveActive cùng với dữ liệu tương ứng. Đây là cách đọc registry bằng PowerShell phổ biến nhất.

Đọc một giá trị cụ thể với tham số -Name

Khi chỉ cần lấy một giá trị duy nhất, bạn chỉ định tên giá trị qua tham số -Name:

Get-ItemProperty -Path "HKLM:SoftwareMicrosoftWindowsCurrentVersion" -Name "ProgramFilesDir"

Lệnh này trả về đường dẫn thư mục Program Files (ví dụ C:Program Files).

Sử dụng Get-Item cho các khóa không có giá trị

Nếu bạn chỉ muốn kiểm tra sự tồn tại của một khóa mà không cần đọc giá trị:

Get-Item -Path "HKLM:SoftwareMicrosoftWindows"

Lệnh này trả về đối tượng khóa Registry, bao gồm đường dẫn, tên khóa và danh sách giá trị (dạng Property).

Xem thêm:  Cách mở PowerShell trên Windows 11: 9 phương pháp chi tiết từ cơ bản đến nâng cao

Cách đọc Registry bằng PowerShell với các kiểu dữ liệu khác nhau

cách đọc registry bằng powershell - Hình 3

Registry hỗ trợ nhiều kiểu dữ liệu như REG_SZ (chuỗi), REG_DWORD (số nguyên 32-bit), REG_BINARY (nhị phân), REG_MULTI_SZ (nhiều chuỗi). PowerShell xử lý chúng tự động khi dùng Get-ItemProperty.

Kiểu Registry Kiểu.NET tương ứng Ví dụ trong PowerShell
REG_SZ String Giá trị chuỗi thông thường
REG_DWORD Int32 0x00000001 (có thể ép kiểu sang int)
REG_QWORD Int64 Số nguyên 64-bit
REG_BINARY Byte[] Mảng byte – thường cần chuyển đổi
REG_MULTI_SZ String[] Mảng các chuỗi
REG_EXPAND_SZ String Chuỗi có biến môi trường (ví dụ %PATH%)

Để đọc giá trị REG_EXPAND_SZ và mở rộng biến môi trường,

Get-ItemProperty trả về mảng các chuỗi.

Sử dụng lớp.NET [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey() như đã trình bày ở phần trước. Tuy nhiên, cách này yêu cầu quyền truy cập Registry từ xa thông qua Remote Registry service.

Có thể dùng PowerShell để đọc Registry của user khác không?

Có, bằng cách tải hive của user đó: reg load “HKUTempUser” “C:UsersUserNameNTUSER.DAT” sau đó đọc từ HKEY_USERSTempUser. Lưu ý cần quyền Administrator.

Tại sao Get-ItemProperty không trả về tất cả giá trị trong khóa?

Nếu khóa có tên giá trị bắt đầu bằng dấu @ hoặc có ký tự đặc biệt, bạn nên dùng Get-Item và truy cập thuộc tính Property để xem danh sách đầy đủ.

PowerShell có thể đọc Registry của Windows PE hoặc Windows offline không?

Có, bằng cách tải offline hive từ file (SOFTWARE, SYSTEM, NTUSER.DAT) sử dụng reg load rồi dùng PowerShell đọc như bình thường.

Xem thêm:  Cách sử dụng thiết bị ngoại vi hiệu quả để tối ưu năng suất làm việc và giải trí

Kết luận

cách đọc registry bằng powershell - Hình 2

Cách đọc Registry bằng PowerShell là một kỹ năng thiết yếu giúp bạn truy xuất và phân tích cấu hình hệ thống một cách nhanh chóng, chính xác và có thể tự động hóa. Từ các lệnh cơ bản như Get-ItemProperty và Get-ChildItem cho đến kỹ thuật nâng cao như đọc từ xa qua.NET hoặc PowerShell Remoting, bạn đã có đầy đủ công cụ để làm việc với Registry hiệu quả.

Hãy luôn cẩn trọng với quyền truy cập và kiểm tra kỹ đầu ra, đặc biệt khi làm việc trên hệ thống sản xuất. Bằng cách nắm vững cách đọc Registry bằng PowerShell, bạn sẽ tiết kiệm thời gian đáng kể khi quản trị, bảo trì và xử lý sự cố Windows.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *