Tại sao regedit hiển thị giá trị không chính xác?


1

Một trong những ứng dụng tôi làm việc lưu trữ chuỗi kết nối cơ sở dữ liệu trong sổ đăng ký. Tôi đã thay đổi giá trị (thông qua regedit) để trỏ đến một DB khác. Ứng dụng của tôi vẫn đang chọn giá trị cũ. Khá chắc chắn rằng tôi đã làm gì đó sai, vì vậy đã kiểm tra mã, khởi động lại, tìm kiếm sổ đăng ký để xác minh không có khóa nào khác có cùng tên. Không có niềm vui. Tôi thậm chí đã xóa khóa, khởi động lại và ứng dụng của tôi vẫn đang đọc giá trị tốt.

Sau đó, tôi đã sử dụng PowerShell để liệt kê các giá trị (thông qua Get-ItemProperty) và điều đó cũng cho thấy giá trị cũ. Đã sử dụng Set-ItemProperty để cập nhật giá trị, và sau đó mã của tôi đã chọn tốt. Tuy nhiên, regedit vẫn hiển thị dữ liệu cũ. Thậm chí có một nhà phát triển khác và một kỹ sư hệ thống để xem như một kiểm tra vệ sinh. Không có ý tưởng.

Có ai biết tại sao regedit dường như không hiển thị cùng thông tin như Get-ItemProperty không?


Liệu regedit vẫn hiển thị giá trị sai? Hệ điều hành 32 bit hay 64 bit? Cung cấp vị trí trong sổ đăng ký. Điều này có thể biến thành một câu hỏi Stackoverflow dựa trên những suy nghĩ sâu sắc của tôi về vấn đề này.
Ramhound

Có regedit vẫn hiển thị giá trị sai. Đó là 64 bit. Vị trí là HKLM \ Software \ LivingNatatural \ AppConnectionString - là một khóa tùy chỉnh.
Mike Hildner

1
Tôi sẽ đặt cược rất nhiều tiền mà regedit vẫn ổn. Bạn đang đọc sai khóa hoặc ứng dụng của bạn không hoạt động như bạn mong đợi
Keltari

@MikeHildner - Tôi giả sử phần mềm của bạn đặc biệt đọc HKLM\Softwarevị trí 64 bit và là ứng dụng 64 bit? Nếu đó là ứng dụng 32 bit thì nó sẽ tự động cố gắng đọc registry 32 bit HKLM\Software. Nếu vấn đề là những gì tôi nghĩ thì đó là Powershell nhiều hơn thì có khả năng xử lý việc này tự động và được ẩn cho bạn? Tải lên phiên bản 32 bit của hệ điều hành trong một máy ảo, lặp lại những gì bạn đã làm, tôi nhận được rằng Keltari đặt cược rằng bạn sẽ không thể sao chép vấn đề.
Ramhound

Mặc dù khóa đăng ký là tùy chỉnh, vị trí sẽ trong suốt đối với Windows tùy thuộc vào việc chúng ta đang nói về quá trình 32 bit hay 64 bit.
Ramhound

Câu trả lời:


4

Hóa ra lý do regedit không hiển thị hoặc sửa đổi thông tin giống như PowerShell là vì, lúc đó tôi không biết, tôi đang chạy regedit từ c: \ Windows \ SysWOW64 chứ không phải từ c: \ Windows.


Tôi biết nó là một cái gì đó như thế :-)
Ramhound

0

Vì vậy, không chỉ đọc những gì trong HKLM \ Software \ Wow6432Node? Đồng thời chạy C: \ Windows \ SysWOW64 \ Odbcad32.exe và xem liệu nó có nhận các cài đặt từ đó không.


Chà, đó là một cái gì đó khác lạ. Tôi không có HKLM \ Software \ Wow6432Node. Kiểm tra hai lần dưới thuộc tính máy tính và Windows cho tôi biết đó là 64 bit.
Mike Hildner
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.