
Недавно я экспериментировал с различными способами управлениязапуск/вход в систему, и я обнаружил нечто, чего не совсем понимаю.
Autoruns
рассматривает записи в HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
как вещи, которыеволязапускать при входе в систему.
Однако вы можете зайти в графический интерфейс настроек, перейти в раздел Startup apps
и отключить их там, но они не исчезнут (или не будут перемещены) из реестра.
Между тем, если вы отключите их через Autoruns
, они просто перемещаются в подключ с именем AutorunsDisabled
(и исчезают из startup apps
списка настроек), поэтому создается впечатление, что записи реестра — это просто список ПОТЕНЦИАЛЬНЫХ команд запуска, и где-то должно быть что-то, что включает или отключает их.
Поскольку я пытаюсь понять, как они работают, чтобы иметь возможность добавлять или удалять их программным способом, что делает графический интерфейс настроек «под капотом», чтобы сообщить компьютеру, какие записи следует запускать, а какие игнорировать?
решение1
Я проследил работу диспетчера задач при включении и отключении элемента на вкладке «Автозагрузка» и обнаружил следующее.
Диспетчер задач делает это волшебство с помощью другого механизма, нежели Autoruns. Он изменяет значения в следующем разделе реестра:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run
Для каждого запускаемого приложения вы найдете запись в этом разделе реестра, имя которой совпадает с именем приложения, а значение может быть одним из следующих:
- Вход естьвключено:
02 00 00 00 00 00 00 00 00 00 00 00
(шестнадцатеричный) - Вход естьнеполноценный:
63 60 60 60 62 F9 8C 76 C5 3B D9 91
(шестнадцатеричное) илиO3 00 00 00 d4 0d 43 8d c8 3b d9 01
Это значение было разным каждый раз, когда я его отключал.
Диспетчер задач творит чудеса, изменяя значения элементов.
Теперь, когда я знал, что искать, я нашел статью Реестр: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run который говорит:
Реестр: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run
Значения ниже
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run
можно использовать для включения или отключения соответствующих значений в разделеHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
.Значение 02 00 00 … или 06 00 00 …, по-видимому, указывает на то, что запись включена, все(?) другие значения — на то, что она отключена. (Возможно, в случае отключения значение является временной меткой отключения).
Эти значения можно изменить на вкладке запуска taskmgr.exe.
См. также
Соответствующий ключ для всех пользователей:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run
.
решение2
Экспериментируя с настройками SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run, можно сделать вывод, что значения можно сузить до четырех разных:
01 - запуск отключен, включить может пользователь с правами администратора
02 - запуск включен, пользователь с правами администратора может отключить
08 - запуск включен, пользователь не может отключить (выделено серым цветом)
09 - запуск отключен, пользователь не может включить (выделено серым цветом)
Он работает только с двумя цифрами. 99 работает так же, как 09 и т. д. Возможно, есть и другие, которые делают что-то по-другому, но меня интересовали только эти четыре цифры.