Добавить ключ к HKEY текущий пользователь для всех пользователей

У меня есть установщик, который устанавливает ключ на HKEY_CURRENT_USER. Когда я запускаю установщик, он добавляет его только на пользователя, который устанавливает. Есть ли способ добавить ключ ко всем пользователям сразу ?

спасибо

5 ответов


вам придется пройти через всех разных пользователей под HKEY_USERS, что требует повышенных прав. И не захватывает никаких пользователей, которые еще не были созданы. Это просто неправильный подход.

способ сделать это-добавить значения по умолчанию в соответствующий ключ под HKLM во время установки. Когда ваша программа пытается прочитать из реестра, она выглядит в HKCU во-первых, и если ваш ключ не указан, он копирует информацию из соответствующего ключа в HKLM к ключу в HKCU.

общее правило программ установки заключается в том, что они не должны полагаться на запуск пользователем, который впоследствии будет использовать установленную программу. Конечно, в корпоративных настройках программы обычно устанавливаются под учетной записью пользователя, которая никогда не будет впоследствии запускать устанавливаемую программу.


в некоторых случаях Настройка Active может быть решением.

Он работает, добавляя ключ к HKLM\SOFTWARE\Microsoft\Active Setup\установленные компоненты\%имя пакета% с номером версии. При входе пользователя в Windows проверяет и сравнивает его с HKCU\SOFTWARE\Microsoft\Active Setup\установленные компоненты\%имя пакета%. Если он отсутствует или более низкая версия, то он запускает все, что было установлено в HKLM\SOFTWARE\Microsoft\Active Setup\установленные компоненты\%имя пакета%\StubPath.

вы можете сделать некоторые пользовательские вещи таким образом, например, я использовал его для добавления определенного скрипта (для отображения сетевого диска) в HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run следующим образом:

reg добавить " HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Компоненты\MapDrive" /v "версия" /d " 1 " / T REG_SZ / f

добавить reg "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\установлен Компоненты\MapDrive "/ v "StubPath" / d "reg добавить HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v "MountDrive" / d C:\map - ... cmd "/ t REG_DWORD /f " / f

Что происходит здесь:

  • при следующем входе пользователя в систему Active Setup проверяет наличие в реестре Строковой версии со значением 1 или более ключ раздел HKEY_LOCAL_MACHINE\программное обеспечение\Майкрософт\активной установки\установки\компоненты MapDrive. Его нет, поэтому он создает его, а также запускает вторую команду reg add, которая добавляет строку со значением C:\map.cmd под HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
  • это происходит только один раз, потому что на каждом последовательном входе в активную настройку выяснится, что HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Настройка\Установленные Компоненты\MapDrive теперь есть версия под ним.

звучит сложно, но имеет смысл, как только вы это поймете, и очень полезно.

http://wpkg.org/Adding_Registry_Settings#Adding_entries_to_HKCU_for_all_users


Это мой процесс, поскольку я в настоящее время работаю в Windows 7

  • найдите ключ / ы, которые вы хотите под HKCU в regedit, экспортируйте его / их.

  • теперь щелкните правой кнопкой мыши на ключе HKEY_USERS и выберите load hive. Перейдите к C:\Users\Default и выберите NTUSER.Дат. Назовите улей, как вам нравится (например, NAMEHERE).

  • в экспортированном файле reg замените все экземпляры [Раздел HKEY_CURRENT_USER\ с [РАЗДЕЛЕ HKEY_USERS\NAMEHERE\ (или что-то еще Назови свой улей) и сохраните файл

  • дважды щелкните файл reg, чтобы объединить его

  • выделите ключ NAMEHERE и выберите выгрузить улей.

теперь для любых новых профилей они получают эти ключи. Существующие профили не работают, поэтому вы не увидите, как это работает, если вы войдете в систему с уже существующим профилем. Если вы хотите удалить профиль, который я нахожу самым чистым способом, щелкните правой кнопкой мыши компьютер, выберите Свойства, Дополнительные Системные настройки и затем выберите Параметры в разделе профили пользователей. Выделите профиль, который вы хотите удалить и выберите Удалить.

кажется, это не работает все время. Я здесь ищу информацию о том, почему это не работает для ключи я пытаюсь добавить в HKEY_CURRENT_USER\Software\Classes\ но до сих пор этот процесс всегда работал. Я добавлю примечание, если я вижу, почему это не работает - в настоящее время мне интересно, нужно ли добавлять его через политику в контексте пользователя.


нет, это невозможно сделать.

подумайте об этом в этом сценарии: вы установили приложение, затем создается новая учетная запись пользователя. Как добавить раздел реестра в эту новую учетную запись во время установки?


или единственный способ сделать это, когда пользователь запускает ваше приложение. Это приложение создает ключ со значениями по умолчанию при первом запуске.


Я думаю, что лучший способ сделать это-GPO.

создайте GPO, который изменит HKCU которые применяют изменения, которые вы хотите сделать для пользователей, затронутых этим GPO.

следующий КБ Майкрософт может помочь реализовать это:

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