2013-04-25 52 views

Trả lời

10

Bạn sẽ phải trải qua tất cả những người dùng khác nhau dưới HKEY_USERS, yêu cầu quyền nâng cao. Và không nắm bắt bất kỳ người dùng nào chưa được tạo. Đó chỉ là cách tiếp cận sai lầm.

Cách thực hiện việc này là thêm giá trị mặc định vào khóa tương ứng dưới HKLM khi cài đặt. Khi chương trình của bạn cố gắng đọc từ sổ đăng ký, trước tiên nó sẽ tìm kiếm HKCU và nếu khóa của bạn không có, nó sẽ sao chép thông tin từ khóa tương ứng trong HKLM vào khóa trong HKCU.

Quy tắc chung của chương trình cài đặt là họ không nên dựa vào việc được chạy bởi người dùng sau đó sẽ sử dụng chương trình đã được cài đặt. Chắc chắn trong các chương trình cài đặt của công ty thường được cài đặt trong tài khoản người dùng mà sau này sẽ không bao giờ chạy chương trình đang được cài đặt.

+0

Lưu ý. Trong trường hợp của tôi, tôi đã tìm thấy một chìa khóa "tương đương" trong máy địa phương để tôi có thể làm những gì tôi cần, nhưng tôi vẫn tự hỏi liệu có cách nào không. –

+0

"Cách để làm điều đó là ..." - điều đó có hiệu quả, nhưng cách nào để gỡ cài đặt ứng dụng bằng phương pháp này là đúng? – Paul

-1

Không, không có cách nào để thực hiện.

Hãy nghĩ về điều này trong trường hợp này: bạn đã cài đặt ứng dụng, sau đó tạo tài khoản người dùng mới. Làm cách nào để bạn có thể thêm khóa đăng ký vào tài khoản mới này trong khi cài đặt?


Hoặc cách duy nhất để làm điều đó là khi người dùng đó khởi động ứng dụng của bạn. Đó là ứng dụng của bạn tạo khóa với giá trị mặc định ở lần khởi chạy đầu tiên.

7

Trong một số trường hợp, Thiết lập hoạt động có thể là giải pháp.

Nó hoạt động bằng cách thêm khóa vào HKLM \ SOFTWARE \ Microsoft \ Active Setup \ Thành phần cài đặt \% tên gói% với số phiên bản. Khi người dùng đăng nhập Windows kiểm tra vị trí này và so sánh nó với HKCU \ SOFTWARE \ Microsoft \ Active Setup \ Thành phần cài đặt \% tên gói%. Nếu nó bị thiếu hoặc một phiên bản thấp hơn sau đó nó chạy bất cứ điều gì đã được thiết lập trong HKLM \ SOFTWARE \ Microsoft \ Active Setup \ Installed Components \% tên gói% \ StubPath.

Bạn có thể làm một số việc tùy chỉnh theo cách này, ví dụ tôi sử dụng nó để thêm một kịch bản nhất định (để ánh xạ một ổ đĩa mạng) cho HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Run theo cách sau :

reg add "HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ tích cực Setup \ Installed Components \ MapDrive"/v "Version"/d "1"/t REG_SZ/f

reg thêm "HKEY_LOCAL_MACHINE \ PHẦN MỀM \ Microsoft \ Active Setup \ Inst alled Thành phần \ MapDrive "/ v" StubPath "/ d" reg thêm HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Run/v "MountDrive"/d "C: \ map.cmd "/ t REG_DWORD/f"/f

gì xảy ra ở đây:

  • khi người dùng đăng nhập tiếp theo vào, Setup sẽ kiểm tra tích cực nếu có một phiên bản chuỗi với giá trị là 1 hoặc lớn hơn trong đăng ký dưới khóa HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Active Setup \ Thành phần được cài đặt \ MapDrive. Có là không có, do đó nó tạo ra nó, và cũng có thể chạy reg thứ hai thêm lệnh, có thêm một chuỗi với một giá trị C: \ map.cmd dưới HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Run
  • nó chỉ xảy ra một lần, bởi vì mỗi lần đăng nhập liên tục trên Thiết lập Hoạt động sẽ tìm ra rằng HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Active Thiết lập \ Thành phần Cài đặt \ MapDrive hiện có Phiên bản theo nó.

Âm thanh phức tạp, nhưng có ý nghĩa khi bạn tìm ra và rất hữu ích.

http://wpkg.org/Adding_Registry_Settings#Adding_entries_to_HKCU_for_all_users

-1

Tôi nghĩ cách tốt nhất để làm điều đó là bởi GPO.

Tạo GPO sẽ sửa đổi HKCU áp dụng thay đổi bạn muốn thực hiện cho người dùng bị ảnh hưởng bởi GPO đó.

Sau đây Microsoft KB có thể giúp thực hiện điều này:

http://technet.microsoft.com/en-us/library/bb742499.aspx

2

Đây là quá trình của tôi như tôi hiện đang làm việc trong Windows 7

  • Tìm chìa khóa/s bạn muốn dưới HKCU trong regedit, xuất nó/chúng.

  • Bây giờ nhấp chuột phải vào phím HKEY_USERS và chọn tổ chức tải. Duyệt đến C: \ Users \ Default và chọn NTUSER.DAT. Đặt tên cho tổ ong bất cứ điều gì bạn thích (ví dụ như NAMEHERE).

  • trong file reg xuất khẩu của bạn thay thế tất cả các trường hợp của [HKEY_CURRENT_USER \ với [HKEY_USERS \ NAMEHERE \ (hoặc bất cứ điều gì bạn đặt tên hive của bạn) và lưu các tập tin

  • nhấn đúp chuột vào tập tin reg để hợp nhất nó

  • Đánh dấu phím NAMEHERE và chọn bỏ ẩn.

Bây giờ, đối với bất kỳ tiểu sử mới nào, họ sẽ nhận được các khóa đó. Các cấu hình hiện tại không mặc dù vậy bạn sẽ không thấy nó hoạt động nếu bạn đăng nhập với một hồ sơ đã tồn tại từ trước. Nếu bạn muốn xóa hồ sơ, tôi thấy cách sạch nhất là nhấp chuột phải vào máy tính, chọn thuộc tính, cài đặt hệ thống nâng cao và sau đó chọn cài đặt trong hồ sơ người dùng. Đánh dấu hồ sơ bạn muốn xóa và chọn xóa.

Dường như điều này không hoạt động mọi lúc.Tôi đang tìm kiếm thông tin về lý do tại sao tính năng này không hoạt động đối với các khóa mà tôi đang cố gắng thêm vào theo số HKEY_CURRENT_USER \ Software \ Classes \ nhưng cho đến bây giờ, quy trình này luôn hoạt động. Tôi sẽ thêm một lưu ý nếu tôi thấy lý do tại sao điều đó không hoạt động - tôi hiện đang tự hỏi liệu tôi có phải thêm nó thông qua chính sách trong ngữ cảnh của người dùng hay không.

Các vấn đề liên quan