Пишите в HKEY_LOCAL_MACHINE в Windows 7 без прав администратора - PullRequest
3 голосов
/ 12 мая 2011

Прежде всего, я понимаю, что это грязная ситуация, но она не в моем замысле, и я просто пытаюсь помочь, и для этого мне нужна ваша помощь.

  1. Приложение A устанавливается автоматически через установщик SMS под учетной записью администратора, а не учетной записи пользователя ПК. Приложение A имеет раздел реестра, определенный в HKEY_LOCAL_MACHINE hive.
  2. После установки приложения A мы хотим отредактировать вышеупомянутый раздел реестра, чтобы назначить папку пользователя C:\Users\USER_ID\Documents\ (мне сказали, что мы не знаем, кто пользователь, и не имеем доступа на USER_ID во время шага 1).
  3. Я знаю все о UAC, Манифесте приложений и requestedExecutionLevel. Однако мне сказали, что мы не можем ожидать, что все пользователи будут находиться в группе администраторов на их компьютере.
  4. Решение должно быть обратно совместимо с Windows XP.

Я ищу варианты для получения `C: \ Users \ USER_ID \ Documents \ 'в кусте' HKEY_LOCAL_MACHINE 'при указанных выше условиях.

Я нашел эту ветку, которая может быть связана с подобной ситуацией, но я еще не до конца ее понимаю (поэтому я буду благодарен всем, кто объяснит это лучше):

Я также прочитал что-то, что исключает ClickOnce:

1 Ответ

3 голосов
/ 12 мая 2011

После того, как приложение A установлено с правами администратора, вы пытаетесь запустить дополнительный сценарий как локальный пользователь, который не имеет прав администратора. Для того, чтобы ваш вторичный скрипт записывал в ключ локального компьютера, он должен быть запущен с правами администратора ..period. При этом у вас есть два варианта:

1) Используйте команду RunAs для запуска сценария с повышенными привилегиями и введите имя пользователя и пароль администратора для запуска сценария с повышенными привилегиями.

2) Это лучший способ imo - поскольку SMS используется в качестве средства доставки, используйте его возможности для обнаружения и использования параметров конфигурации локального клиента для записи ключа во время установки.

Таким образом, пакет SMS должен быть настроен на запуск только в том случае, если локальный пользователь входит в систему один раз, чтобы SMS мог захватить текущего пользователя и записать его в файл где-нибудь ... после этого SMS может запустить отдельный Пакет от имени администратора (пользователю будет предложено) выполнить установку программного обеспечения, отыскивая файл, содержащий пользователя, а затем обновляя ключ локального компьютера, указав правильный путь к моему документу для пользователя.

Наслаждайтесь!

...