Существует БОЛЬШАЯ, очень БОЛЬШАЯ проблема с некоторыми "программами".
Каждый раз, когда они запускаются, они устанавливают / касаются реестра, чтобы добавить запись в \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 для: блокировки реальных записей реестра, автозапуска, каталогов, планирования задач, но пусть приложения думают, что они имели изменил его, как инструмент песочницы; затем представьте пользователю, какой из них требуется изменить, и отметьте / проверьте, разрешено или нет, чтобы следующая загрузка выполнялась пользователем, а не каждым приложением.