Где находится ключ реестра RunServicesOnce

Где находится ключ реестра RunServicesOnce

У меня есть приложение, которое обновляет программное обеспечение на локальной машине. Мне нужно, чтобы программное обеспечение обновлялось до входа пользователя в систему, и я прочитал, что запуск приложения через раздел RunServicesOnceреестра, вероятно, является наиболее подходящим для этой цели.

Но я не могу найти этот ключ regedit, и он не отображается в том же месте, что и ключ HKLM RunOnce в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce.

  1. Где находится этот ключ? То же самое в Windows XP \ Vista \ 7 \ 8 \ 8.1 \ 10 ?
  2. Как его использовать, есть ли какие-либо дополнительные параметры?
  3. Как определить пользователя, от имени которого запущено приложение? Запускается ли оно пользователем, создавшим ключ? Если LocalSystemключ создает служба, будет ли оно запущено от имени LocalSystem?

решение1

Где находится ключ реестра RunServicesOnce

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

Запустить программу до входа пользователя в Windows 7

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

  1. HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute. Это может включать инструкции по планированию запуска chkdsk, но не пользовательских программ.
  2. Далее запускаются службы, за которыми следуют ключи реестра RunServicesOnce и RunServices (если они есть)
  3. Затем пользователь входит в систему.
  4. HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\UserInit. Это указывает на программу C:\WINDOWS\system32\userinit.exe, а запись заканчивается запятой. Другие программы можно запускать из этого ключа, добавляя их и разделяя запятой.
  5. HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell. Он должен содержать только одну запись, explorer.exe.
  6. Записи программ в этих 2 разделах реестра для ВСЕХ ПОЛЬЗОВАТЕЛЕЙ начинаются следующим образом: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run и \RunOnce
  7. Записи программ в этих 2 разделах реестра для ТЕКУЩЕГО ПОЛЬЗОВАТЕЛЯ начинаются следующим образом: HKCU\Software\Microsoft\Windows\CurrentVersion\Run и \RunOnce
  8. Программы в папках автозагрузки всех пользователей и текущего пользователя запускаются в последнюю очередь.

Важные программы, такие как антивирус и брандмауэр, запускаются в начале последовательности как Службы. Значки, которые появляются в области уведомлений (внизу справа на экране), являются просто их пользовательскими интерфейсами, т. е. опциями и предпочтениями.

Дополнительным местоположением 32-разрядного программного обеспечения на 64-разрядном компьютере являются HKLM\SOFTWARE\Wow6432Node и HKCU.

Ключи запуска и порядок поиска

Доступ к реестру осуществляется еще до загрузки ядра NT, поэтому очень важно понимать, что компьютер настроен на загрузку при запуске. Следующий список ключей реестра осуществляется во время запуска системы в порядке их использования различными компонентами Windows:

  1. HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute
  2. HKLM\System\CurrentControlSet\Services (начальное значение 0 указывает на драйверы ядра, которые загружаются до инициализации ядра)
  3. HKLM\System\CurrentControlSet\Services (начальное значение 2, автоматический запуск и 3, ручной запуск через SCM)
  4. HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
  5. HKCU\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
  6. HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices
  7. HKCU\Software\Microsoft\Windows\CurrentVersion\RunServices
  8. HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify
  9. HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
  10. HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
  11. HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
  12. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad
  13. HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
  14. HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
  15. HKLM\Software\Microsoft\Windows\CurrentVersion\Run
  16. HKCU\Software\Microsoft\Windows\CurrentVersion\Run
  17. HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
  18. HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
  19. HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
  20. HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\load
  21. HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows
  22. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\SharedTaskScheduler (только XP, NT, W2k)
  23. HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs

Примечание:Некоторые из этих ключей также отражены в HKLM\Software\wow6432node в системах, работающих на 64-битной архитектуре и с 64-битной версией Windows. Я не буду рассматривать каждый из них в этом посте.

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

Учетная запись LocalSystem

TheЛокальнаяСистемаучетная запись — это предопределенная локальная учетная запись, используемая менеджер по контролю услуг. Эта учетная запись не распознается подсистемой безопасности, поэтому вы не можете указать ее имя в вызове ПоискИмениУчетнойЗаписиФункция. Имеет обширные привилегии на локальном компьютере и действует как компьютер в сети. Его токен включаетNT AUTHORITY\СИСТЕМАиBUILTIN\АдминистраторыSID; эти учетные записи имеют доступ к большинству системных объектов. Имя учетной записи во всех локалях.\ЛокальнаяСистема. Имя,ЛокальнаяСистемаили ИмяКомпьютера\LocalSystemтакже может быть использован.У этой учетной записи нет пароля. Если вы укажете учетную запись LocalSystem при вызове СоздатьСервисилиИзменитьServiceConfigлюбая предоставленная вами информация о пароле игнорируется.

Связанный контент