6

Я пытаюсь отложить запуск определенной программы, которая загружается при входе в систему. Что касается ответа на этот вопрос, я должен быть в состоянии сделать это с помощью планировщика задач. Проблема в том, что я не могу найти программу в списке нигде. Есть ли какая-то конкретная панель, в которую я должен смотреть? Программа Razer Synapse, поэтому я не думаю, что она будет в папках Microsoft или Western Digital.

снимок экрана моего планировщика задач

Если его нет в Task Scheduler, есть ли другой способ отложить его при запуске?

Из любопытства, сколько существует способов запустить программу при запуске в Windows?

3 ответа3

13

Я не могу найти программу в списке нигде.

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

Есть несколько программ, которые позволяют легко проверить места запуска.

  1. msconfig (вкладка "Автозагрузка"):

  2. Автозапуск от SysInternals:

  3. WhatInStartup от NirSoft:

  4. WinPatrol:

    Замечания:

    • WinPatrol позволяет перемещать программы из "автозагрузки" в "отложенный запуск"
    • Вы можете указать время задержки, если вы делаете это.



Сколько существует способов запуска программы при запуске в Windows?

Есть как минимум 17 мест, откуда можно запускать программы. Увидеть ниже.


Места автоматического запуска программ Windows

При включении компьютера следующие места автозапуска обрабатываются в следующем порядке:

  1. Драйверы устройств загрузки Windows

    • Эти драйверы загружаются первыми, так как они необходимы для правильной работы оборудования, такого как устройства хранения.
    • Драйверы загрузочных устройств будут расположены под следующей клавишей и имеют начальное значение, равное 0.


    Ключи реестра:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services
    

    Теперь Windows выполнит различные задачи, а затем запустит процесс Winlogon. В конечном итоге Winlogon запускает диспетчер управления службами, который загружает службы и драйверы, настроенные для автоматического запуска.

  2. Службы и драйверы для автозапуска Windows

    • Процесс диспетчера управления службами (SCM) (\Windows\System32\services.exe) теперь будет запускать любые службы или драйверы, помеченные начальным значением 2.


    Ключи реестра:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services
    
  3. RunServicesOnce

    • Этот ключ предназначен для запуска служб при загрузке компьютера.
    • Эти записи также могут продолжаться даже после входа в систему, но должны быть завершены до HKEY_LOCAL_MACHINE ...Реестр \RunOnce может начать загрузку своих программ.


    Ключи реестра:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
    
  4. RunServices

    • Этот ключ также предназначен для запуска сервисов.
    • Эти записи также могут продолжаться даже после входа в систему, но должны быть завершены до HKEY_LOCAL_MACHINE ...Реестр \RunOnce может начать загрузку своих программ.


    Ключи реестра:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices
    

    Приглашение для входа в Windows отображается на экране. После входа пользователя в систему остальные ключи продолжаются.

  5. Поставить в известность

    • Этот ключ используется для добавления программы, которая будет запускаться при возникновении определенного события.
    • События включают в себя вход в систему, выход из системы, запуск, выключение, запуск заставки и остановку экрана.
    • Когда Winlogon.exe генерирует событие, подобное перечисленным, Windows будет искать в разделе реестра Notify DLL, которая будет обрабатывать это событие.
    • Известно, что вредоносные программы используют этот метод для загрузки самого себя, когда пользователь входит в систему на своем компьютере. Загрузка таким образом позволяет вредоносной программе загружаться таким образом, что ее нелегко остановить.


    Ключ реестра:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify
    
  6. Ключ пользователя

    • Этот ключ указывает, какую программу следует запускать сразу после входа пользователя в Windows.
    • Программа по умолчанию для этого ключа - C:\windows \system32\userinit.exe. Userinit.exe - это программа, которая восстанавливает ваш профиль, шрифты, цвета и т.д. Для вашего имени пользователя.
    • Можно добавить дополнительные программы, которые будут запускаться с этого ключа, разделив их запятой. Например:

      HKLM \Software \Microsoft \Windows NT \CurrentVersion \Winlogon \Userinit = C:\windows \system32\userinit.exe, c:\windows \badprogram.exe.

    Это заставит обе программы запускаться при входе в систему и является обычным местом для запуска троянских программ, угонщиков и шпионских программ. Ключ реестра:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
    
  7. Shell Value

    • Это значение содержит список значений, разделенных запятыми, которые запускает Userinit.exe.
    • Оболочкой по умолчанию для Windows является explorer.exe, хотя есть законные замены, которые были сделаны. Когда userinit.exe запускает оболочку, он сначала запускает значение оболочки, найденное в HKEY_CURRENT_USER. Если это значение отсутствует, оно запустит значение, найденное в HKEY_LOCAL_MACHINE.


    Ключ реестра:

    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\\Shell
      HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\\Shell
    

    Остальные места автозапуска теперь будут обработаны.

  8. Ключ локальной машины RunOnce

    • Эти клавиши предназначены для использования в основном программами установки.
    • Записи в этих ключах запускаются один раз, а затем удаляются из ключа.
    • Если перед значением ключа стоит восклицательный знак, запись не будет удалена до завершения программы, в противном случае она будет удалена до запуска программы. Это важно, потому что, если восклицательный знак не используется, и программа, на которую ссылается этот ключ, не может быть завершена, она не запустится снова, поскольку она уже была удалена.
    • Все записи в этом ключе запускаются синхронно в неопределенном порядке.
    • Из-за этого все программы в этом ключе должны быть завершены до любых записей в HKEY_LOCAL_MACHINE ...\ Выполнить, HKEY_CURRENT_USER ...\ Выполнить, HKEY_CURRENT_USER ...\RunOnce и загрузочные папки могут быть загружены.
    • Клавиши RunOnce игнорируются в Windows 2000 и Windows XP в безопасном режиме. Ключи RunOnce не поддерживаются Windows NT 3.51.


    Ключи реестра:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
    
  9. Бежать

    • Это наиболее распространенные места запуска программ, из которых устанавливается автозапуск.
    • По умолчанию эти ключи не выполняются в безопасном режиме. Если вы добавите звездочку к значению этих клавиш *, оно будет работать в безопасном режиме.


    Ключи реестра:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
    
  10. Папка запуска всех пользователей

    • В Windows XP, 2000 и NT эта папка используется для программ, которые должны автоматически запускаться для всех пользователей, которые будут входить на этот компьютер.


    Обычно он находится по адресу:

    • Windows XP C:\Documents and Settings\All Users\Start Menu\Programs\Startup

    • Windows NT C:\wont\Profiles\All Users\Start Menu\Programs\Startup

    • Windows 2000 C:\Documents and Settings\All Users\Start Menu\Programs\Startup

  11. Папка запуска профиля пользователя

    • Эта папка будет выполнена для конкретного пользователя, который входит в систему.


    Эта папка обычно находится в:

    • Win 9X, ME c:\windows\start menu\programs\startup
    • Windows XP C:\Documents and Settings\LoginName\Start Menu\Programs\Startup
  12. Текущий ключ пользователя RunOnce

    • Эти клавиши предназначены для использования в основном программами установки.
    • Записи в этих ключах запускаются один раз, а затем удаляются из ключа.
    • Если перед значением ключа стоит восклицательный знак, запись не будет удалена до завершения программы, в противном случае она будет удалена до запуска программы. Это важно, потому что, если восклицательный знак не используется, и программа, на которую ссылается этот ключ, не может быть завершена, она не запустится снова, поскольку она уже была удалена.
    • Клавиши RunOnce игнорируются в Windows 2000 и Windows XP в безопасном режиме.
    • Ключи RunOnce не поддерживаются Windows NT 3.51.


    Ключ реестра:

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
    
  13. Explorer Run

    • Эти ключи обычно используются для загрузки программ как часть политики, установленной на компьютере или пользователе.


    Ключи реестра:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
    
  14. Ключ загрузки

    • Эта клавиша больше не используется, но может использоваться для автоматического запуска программ.


    Ключ реестра:

    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\load
    
  15. AppInit_DLLs

    • Это значение соответствует файлам, загружаемым через значение реестра AppInit_DLLs.
    • Значение реестра AppInit_DLLs содержит список библиотек, которые будут загружены при загрузке user32.dll.
    • Поскольку большинство исполняемых файлов Windows используют user32.dll, это означает, что любая библиотека DLL, указанная в разделе реестра AppInit_DLLs, также будет загружена. Это делает очень трудным удаление DLL, так как она будет загружена в несколько процессов, некоторые из которых не могут быть остановлены, не вызывая нестабильность системы.
    • Файл user32.dll также используется процессами, которые автоматически запускаются системой при входе в систему. Это означает, что файлы, загруженные в значение AppInit_DLLs, будут загружены в самом начале процедуры запуска Windows, что позволит DLL скрыться или защитить себя, прежде чем мы получим доступ к системе.


    Ключ реестра:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows
    
  16. ShellServiceObjectDelayLoad

    • Это значение реестра содержит значения аналогично ключу запуска.
    • Разница заключается в том, что вместо указания на сам файл он указывает на InProcServer CLSID, который содержит информацию о конкретном используемом DLL-файле.
    • Файлы под этим ключом автоматически загружаются Explorer.exe при запуске компьютера. Поскольку Explorer.exe является оболочкой для вашего компьютера, он всегда запускается, поэтому всегда загружаются файлы под этим ключом. Поэтому эти файлы загружаются на ранних этапах процесса запуска до того, как произойдет вмешательство человека.


    Ключ реестра:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad
    
  17. SharedTaskScheduler

    • Этот раздел соответствует файлам, загружаемым через значение реестра SharedTaskScheduler для компьютеров XP, NT, 2000.
    • Записи в этом значении реестра запускаются автоматически при запуске Windows.


    Ключ реестра:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\SharedTaskScheduler
    

Ниже перечислены файлы, с которых программы могут автоматически запускаться при загрузке:

  1. C:\ autoexec.bat
  2. c:\ config.sys 3. windir \ wininit.ini - обычно используется программами установки, чтобы один раз запустить файл, а затем удалить его.
  3. Windir \ Winstart.bat
  4. windir \ win.ini - [windows] "загрузка"
  5. windir \ win.ini - [windows] "беги"
  6. windir \system.ini - [boot] "shell" 8. windir \system.ini - [boot] "scrnsave.exe"
  7. windir \ dosstart.bat - используется в Win95 или 98, когда вы выбираете «Перезапуск в режиме MS-DOS» в меню выключения.
  8. Windir \ система \ autoexec.nt
  9. Windir \ система \ config.nt

Места автоматического запуска исходной программы Windows


отказ

Я никоим образом не связан с SysInternals, Nirsoft или WinPatrol, я просто конечный пользователь программного обеспечения.

2

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

Местоположение папки запуска для всех пользователей выглядит следующим образом:
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

Местоположение папки запуска для текущего пользователя выглядит следующим образом:
C:\Users\Username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Местоположение реестра запуска для всех пользователей выглядит следующим образом:
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce

Местоположение запуска реестра для текущего пользователя выглядит следующим образом:
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce

Как только вы найдете название своей программы, вы можете безопасно отключить его, создать новое задание в Task Scheduler и отложить его по мере необходимости.

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

Вы можете скачать Autoruns из пакета Microsoft SysInternal и самостоятельно проверить целую кучу программ запуска.

0

Существует БОЛЬШАЯ, очень БОЛЬШАЯ проблема с некоторыми "программами".

Каждый раз, когда они запускаются, они устанавливают / касаются реестра, чтобы добавить запись в \Software \Microsoft \Windows \CurrentVersion \Run, чтобы при следующей загрузке они запускались снова, как только вход в систему, и у них нет никакой возможности отключить такую вещь.

Я ненавижу такой способ работы, но иногда такая программа должна работать (драйверы связаны).

Как пример: плоский сканер для документов / бумаги, который без фоновой программы (без графического интерфейса пользователя) вообще не работает, эта программа устанавливается при установке драйверов (она не совместима с двумя устройствами, извините !, на всякий случай некоторые эксперты думают об этом другом способе обойти проблему) ... теперь плохая часть, такая программа помещает себя в реестр, поэтому она всегда запускается, как только вход в систему, теперь худшая часть, если я удаляю запись реестра во время такая программа запущена, она снова добавляет запись.

У меня очень уродливый обходной путь (сочетание автоматических и ручных задач), чтобы он не работал постоянно (в большинстве случаев я не пользуюсь таким сканером, а также много дней, когда он не подключен к USB-порту) .. ... он основан на запуске скрипта, который выполняет две или три вещи ... запустите .lnk для запуска этой программы, запустите режим ожидания / ожидания на две минуты (время, в течение которого программа останавливает Windows во время ее запуска), поэтому скрипт ожидает начальной загрузки такой программы, затем запускает .lnk интерфейсного интерфейса сканера, чтобы я мог сканировать бумаги. После того, как я закончу, я вручную использую ProcessExplorer, чтобы убить программу, а затем запустите созданный .reg, чтобы удалить запись из реестра, чтобы она не запускалась при следующей загрузке.

Так как, когда я удаляю запись в реестре, такая программа не работает (я убил ее раньше), она не может добавить в реестр, запись, чтобы запустить ее при следующей загрузке ... если я забыл ее убить, как только я удаляю запись (нажмите F5, чтобы обновить записи реестра) была воссоздана.

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

Итак, как любой инструмент может обойти этот уродливый (не говоря ни о каком худшем слове) способ действий: программа добавляет себя для запуска, а не только каждый раз, когда запускается, как только запись удаляется.

Я использовал инструмент (очень похожий на RegMon от SysInternals, но с другим графическим интерфейсом, поэтому он сообщает вам, сколько времени прошло от одного события до следующего события в той же "папке" реестра, которая отслеживается), с момента, когда я удаляю запись до тех пор, пока такая уродливая программа не создаст его заново, пройдет всего от 0,00001 до 0,0002 секунд (да, менее двух миллисекунд), поэтому такая программа должна использовать ловушку для реестра, чтобы отслеживать изменения (на самом деле, отладчик, который я использовал, также показывает, что он имеет ).

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

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

Если такая программа отслеживает только "удаление" именованного "X", существует "хитрость", основанная на переименовании его перед удалением переименованного; в этом случае это не работает ... программа также отслеживает все, что сделано с записью, и возвращает ее обратно к тому, что она хочет ... поэтому, пока программа работает, другого варианта нет ... она будет перезапущена при следующей загрузке, если только после его уничтожения ключ реестра удален.

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

Решение (которое вообще не работало): отключите USB-сканер, удалите драйвер, приложение сканера и все, что с ним связано, удалите устройство из списка USB, сообщив об удалении всех файлов, используемых для него, и т.д. Используйте CCLeaner для очистки недопустимых записей реестра ... так как основная программа работает в фоновом режиме, я не могу убить эту задачу, я могу избежать регистрации в реестре и т.д. ... перезагрузка в безопасном режиме (программа также добавляет ее в реестр для безопасной загрузки) не решение, программа снова запущена.

Также я попробовал одно решение для пушки ... используйте инструмент, чтобы настроить удаление такого файла при следующей загрузке, но при следующей загрузке было сказано: Файл не может быть удален, он используется.

Последнее обновление драйвера поставило много барьеров, чтобы запретить его запуск ... так что я бы нашел "мастер" решение (если я не католик), иди к производителю со сканером и разбей его по голове ответственного за такой способ запуска "драйвера" ... так как я католик ... я делаю другое "главное" решение ... нет, не форматирую его ... беру Linux Live и из Linux редактирую раздел системы Windows и "удалить" программу, чтобы она не могла быть запущена при следующей загрузке ... если я не забуду удалить +20 мест, где она находится на жестком диске ... и помните, это не троян, не вредоносное ПО ... это драйвер для довольно старого сканера очень известного производителя (две буквы на аббревиатуре) ... и затем загружается в Windows, очищает реестр и т. д. ... и никогда когда-либо снова подключать этот сканер к любому компьютеру ... после подключения он автоматически устанавливает этот драйвер без какой-либо опции, чтобы этого избежать ... так как Windows загрузила последнюю версию такого драйвера (если нет подключения к Интернету), то все так что установите последний (проверенный) и снова ту же проблему ... и то же решение ... удалите все файлы с помощью Linux.

Я знаю, что есть инструмент для редактирования безопасности реестра, но он не позволяет изменять заблокированные записи, и изменение полной безопасности \Software \Microsoft \Windows \CurrentVersion \Run слишком вредно, не говоря уже о том, что оно не имеет смысла. .. такая программа, которая редактирует реестр, выполняется в системной учетной записи ... больше привилегий, чем у администратора ... слишком много, чтобы она могла перепрыгнуть всю безопасность.

По правде говоря, это самая плохая программа, которую я нашел, чтобы избавиться от нее ... гораздо больше, чем вирус, троянец, вредоносное ПО и т.д. И это "драйвер" для сканера.

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

Теперь у меня есть TWAIN-совместимый USB-сканер, другой - я использую его только для того, чтобы разбить камни во дворе! Я не позволю никому страдать от того, что я страдаю ... и, конечно, я не буду снова покупать что-либо из этого производства, что бы ни говорили.

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

Для таких у меня есть свой собственный скрипт запуска: запустите .lnk программы, сделайте несколько минут сна (достаточно, чтобы позволить им повторно добавить в реестр), запустите .reg, чтобы удалить такую запись ... и вуаля при следующей загрузке они не запускаются снова.

Но один из них, добавьте его самостоятельно при выходе, поэтому я должен использовать совершенно другой подход, мой сценарий таков: запустите программу с /wait (используйте start для ее запуска), но убедитесь, что вы запускаете программу, а не .lnk ... затем сценарий ожидает / спит до завершения программы, затем сценарий продолжается и удаляет запись реестра.

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

Другими словами ... если реестр не заблокирован ... мое самое лучшее решение для защиты от сбоев - использовать мой собственный скрипт (с черным списком), который запускается при завершении работы, он убивает соответствующие программы и затем удаляет ключи реестра. я не хочу при следующей загрузке запускаться.

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

Побочный эффект: некоторые из них должны быть запущены с повышенными правами / правами администратора ... и, поскольку я не хочу отключать ACM, я должен нажать OK для каждого ... если я позволю им при загрузке, они запускаются без необходимости такое подтверждение.

Было бы приятно, если бы M $ реализовал по-другому ... если что-то требует повышенных прав, попросите об этом и сообщите пользователю (не спрашивайте меня больше раз в будущем), а также при редактировании .lnk чтобы сказать нужно повышенные права / runas admin ... есть другая опция (не спрашивать) и активировать такую опцию спрашивать пользователя, как при повышенных правах ... так что не может быть пойман и активирован только реальным пользователем ... и т.п.

До этого момента, если мне нужно запустить приложение, которое помещает его в реестр самостоятельно, я буду использовать RegMon, отслеживающий все такие +8 мест, где приложение может поместить запись для автоматического запуска при следующей загрузке ... Я не знаю ни одного бесплатное программное обеспечение, которое может сделать что-то похожее для папок, ни для планировщика ... кроме одного очень навязчивого, которое запрашивает подтверждение для ЛЮБОГО изменения ... что-то, что приводит к сбою некоторых приложений (сообщения о превышении времени ожидания).

Я оставляю всю эту информацию на усмотрение остальных, и на всякий случай любой разработчик увидит ее и сможет создать отличный инструмент FreeWare для: блокировки реальных записей реестра, автозапуска, каталогов, планирования задач, но пусть приложения думают, что они имели изменил его, как инструмент песочницы; затем представьте пользователю, какой из них требуется изменить, и отметьте / проверьте, разрешено или нет, чтобы следующая загрузка выполнялась пользователем, а не каждым приложением.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .