Где находится раздел реестра RunServicesOnce
У меня есть приложение, которое обновляет программное обеспечение на локальной машине. Мне нужно обновить программное обеспечение до входа пользователя
Если вы хотите, чтобы он запускался до того, как пользователь войдет в систему, вам придется запустить его как службу. Вот последовательность запуска основных разделов реестра, начинающаяся сразу после считывания bootmgr и заканчивающаяся записями ярлыков программы в двух папках Startup.
- HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute. Это может включать инструкции по планированию запуска chkdsk, но не пользовательских программ.
- Далее запускаются службы, затем следуют разделы реестра RunServicesOnce и RunServices (если есть)
- Затем пользователь входит в систему
- HKLM\ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon \ UserInit. Это указывает на программу C: \ WINDOWS \ system32 \ userinit.exe, и запись заканчивается запятой.
Другие программы могут быть запущены с этого ключа, добавляя их и разделяя их запятой.
- HKLM\ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon \ Shell. Это должно содержать только одну запись, explorer.exe.
- Записи программы в этих 2 разделах реестра для ВСЕХ ПОЛЬЗОВАТЕЛЕЙ начинаются следующим образом: HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run и \ RunOnce
- Записи программы в этих 2 разделах реестра для ТЕКУЩЕГО ПОЛЬЗОВАТЕЛЯ начинаются следующим образом: HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Run и \ RunOnce
- Программы в папках запуска всех пользователей и текущего пользователя запускаются в последнюю очередь.
Важные программы, такие как антивирус и брандмауэр, запускаются на ранних этапах в качестве служб. Значки, которые появляются в области уведомлений (внизу справа на экране), представляют собой просто их пользовательские интерфейсы, то есть параметры и предпочтения.
Дополнительное расположение для 32-разрядного программного обеспечения на 64-разрядном компьютере - HKLM \ SOFTWARE \ Wow6432Node и HKCU.
Доступ к реестру осуществляется еще до загрузки ядра NT, поэтому очень важно понимать, что компьютер настроен для загрузки при запуске. Следующий список ключей реестра доступен при запуске системы в порядке их использования различными компонентами Windows:
- HKLM\SYSTEM\CurrentControlSet\Control\ Диспетчер сеансов \ BootExecute
- HKLM\ System \CurrentControlSet\ Services (начальное значение 0 указывает на драйверы ядра, которые загружаются до запуска ядра)
- HKLM\ System \CurrentControlSet\ Services (начальное значение 2, автоматический запуск и 3, ручной запуск через SCM)
- HKLM\ Software \ Microsoft \ Windows \ CurrentVersion \ RunServicesOnce
- HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ RunServicesOnce
- HKLM\ Software \ Microsoft \ Windows \ CurrentVersion \ RunServices
- HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ RunServices
- HKLM\ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon \ Notify
- HKLM\ Software \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon \ Userinit
- HKCU \ Программное обеспечение \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon \ Shell
- HKLM\ Программное обеспечение \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon \ Shell
- HKLM\ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ ShellServiceObjectDelayLoad
- HKLM\ Software \ Microsoft \ Windows \ CurrentVersion \ RunOnce
- HKLM\ Software \ Microsoft \ Windows \ CurrentVersion \ RunOnceEx
- HKLM\ Software \ Microsoft \ Windows \ CurrentVersion \ Run
- HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Run
- HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ RunOnce
- HKLM\ Software \ Microsoft \ Windows \ CurrentVersion \ Policies \ Explorer \ Run
- HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Policies \ Explorer \ Run
- HKCU \ Программное обеспечение \ Microsoft \ Windows NT \ CurrentVersion \ Windows \ load
- HKLM\ Программное обеспечение \ Microsoft \ Windows NT \ CurrentVersion \ Windows
- HKLM\ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Windows \ CurrentVersion \ Explorer \ SharedTaskScheduler (только XP, NT, W2k)
- HKLM\ Программное обеспечение \ Microsoft \ Windows NT \ CurrentVersion \ Windows \ AppInit_DLLs
Примечание. Некоторые из этих ключей также отображаются в разделе HKLM \ Software \ wow6432node в системах, работающих на 64-битной архитектуре и с 64-битной версией Windows. Я не буду освещать каждый из них в этом посте.
Запускайте свою службу как учетную запись LocalSystem, если только учетной записи не требуется доступ к сетевым ресурсам, после чего вы создадите учетную запись службы домена, предоставите ей доступ к соответствующим ресурсам, а затем жестко закодируете свои учетные данные для запуска службы. На локальном компьютере у него будут административные разрешения на все и не требуется пароль для учетных данных службы.
Учетная запись LocalSystem является предопределенной локальной учетной записью, используемой диспетчером управления службами. Эта учетная запись не распознается подсистемой безопасности, поэтому вы не можете указать ее имя при вызове функции LookupAccountName. Он имеет широкие привилегии на локальном компьютере и действует как компьютер в сети. Его токен включает идентификаторы NT AUTHORITY\SYSTEM и BUILTIN\Administrators ; эти учетные записи имеют доступ к большинству системных объектов. Имя аккаунта во всех локалях есть .\LocalSystem. Имя, LocalSystem или ComputerName\LocalSystem также могут быть использованы. Эта учетная запись не имеет пароля. Если вы укажете учетную запись LocalSystem при вызове функции CreateService или ChangeServiceConfig , любая предоставленная вами информация о пароле игнорируется.