Добавить ключ к 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.
следующий КБ Майкрософт может помочь реализовать это: