Вопрос или проблема
Я пытаюсь отложить запуск конкретной программы, которая загружается при входе в систему. Согласно ответу на этот вопрос, я должен иметь возможность сделать это с помощью Планировщика заданий. Проблема в том, что я не могу найти программу в списке. Есть ли определенная панель, которую мне стоит проверить? Программа – Razer Synapse, поэтому я не думаю, что она будет в папках Microsoft или Western Digital.
Если ее нет в Планировщике заданий, есть ли другой способ отложить ее запуск при старте?
Из любопытства, сколько способов существует, чтобы программа запускалась при старте в Windows?
Я не могу найти программу в списке.
Существует множество мест, откуда программы могут запускаться при старте. Вам нужно проверить все эти места до тех пор, пока вы не найдете нужную программу.
Есть несколько программ, которые позволяют легко проверять местоположения автозагрузки.
-
msconfig (вкладка “Автозагрузка”):
-
Autoruns от SysInternals:
-
WhatInStartup от NirSoft:
-
Примечание:
Сколько способов существует для запуска программы при старте в Windows?
Существует как минимум 17 мест, откуда могут запускаться программы:
- Драйверы загрузки Windows
- Службы и драйверы автозагрузки Windows
- RunServicesOnce
- RunServices
- Notify
- Ключ UserInit
- Значение Shell
- Ключ RunOnce для локальной машины
- Run
- Папка автозагрузки для всех пользователей
- Папка автозагрузки для профиля пользователя
- Ключ RunOnce для текущего пользователя
- Explorer Run
- Load Key
- AppInit_DLLs
- ShellServiceObjectDelayLoad
- SharedTaskScheduler
Источник: Автоматические местоположения запуска программ в Windows
Смотрите вышеуказанную ссылку для подробного описания каждого из этих 17 мест.
Отказ от ответственности
Я никоим образом не связан с SysInternals, Nirsoft или WinPatrol, я просто конечный пользователь программного обеспечения.
Дополнительное чтение
Если ваша программа недоступна в Планировщике заданий, то она может находиться в Реестре
, папке автозагрузки
или работать как фоновая служба.
Расположение папки автозагрузки для всех пользователей следующее:
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
Как только вы найдете название вашей программы, вы можете безопасно отключить ее и создать новую задачу в Планировщике заданий
, отложив запуск по вашему желанию.
Если вы не можете найти свою программу в вышеуказанных местах, то она может находиться в консоли служб. Нажмите кнопку “Пуск” и введите services.msc
, чтобы открыть управление службами, и вы найдете свою программу там.
Вы можете скачать Autoruns из комплекта SysInternal от Microsoft и самостоятельно просмотреть множество программ автозагрузки.
Я создал пакетный файл, чтобы найти местоположение vbs вредоносного ПО и получить его исходный код из папок автозагрузки:
Processes_Services_Tasks_Startup.bat
@echo off
cls & color 9E & Mode 95,5
Title Запущенные процессы - Запланированные задачи - Сервисы - Элементы автозагрузки от Hackoo 2020
If [%1] NEQ [Admin] Goto RunAsAdmin
echo(
echo( ===========================================================
echo( Пожалуйста, подождите немного ... Идет работа....
echo( ===========================================================
Set "Filter_Ext=%Temp%\Filter_Ext"
Call :GetFileNameWithDateTime MyDate
Set "Log=%~dpn0_%Computername%_%MyDate%.txt"
Set "Lnk_Target_Path_Log=%~dp0Lnk_Target_Path_Log.txt"
Set "All_Users=%ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup"
Set "Current_User=%UserProfile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
set "Winlogonkey=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
Set StartupFolders="%All_Users%" "%Current_User%"
If Exist "%Log%" Del "%Log%"
Set "VbsFile=%Tmp%\%~n0.vbs"
Call :Generate_VBS_File
Powershell ^
Get-WmiObject Win32_Process ^
| where commandline -NE $null ^
| Select-Object ProcessID,Name,CommandLine ^
| Out-String -Width 450 ^
| Findstr /I /V "Admin" ^
| Findstr /I /V "Get-WmiObject" ^
| Out-File "%Log%" -Encoding ASCII
Powershell ^
Get-CimInstance Win32_StartupCommand ^
| Select-Object Name,command,Location,user ^
| Format-List ^
| Out-File -Append "%Log%" -Encoding ASCII
>"%Lnk_Target_Path_Log%" (
@For %%A in (%StartupFolders%) Do (
Call :Execute_VBS_File "%%~A"
)
)
>> "%Log%" (Type "%Lnk_Target_Path_Log%")
> "%Filter_Ext%" (
echo .vbs
echo .vbe
echo .js
echo .jse
echo .hta
echo .bat
echo .cmd
echo .ps1
)
@for /f "delims=" %%a in ('Type "%Lnk_Target_Path_Log%" ^| Findstr /I /G:"%Filter_Ext%"') do (
@for /f "tokens=2 delims==" %%b in ('echo %%a') do (
>> "%Log%" 2>&1 (
echo(
echo ===================================================================================
echo( Исходный код TargetPath=%%b
echo ===================================================================================
Type %%b
)
)
)
Del "%Filter_Ext%" /F >nul 2>&1
Del "%Lnk_Target_Path_Log%" >nul 2>&1
SetLocal EnableDelayedExpansion
>> "%Log%" (
echo(
echo ****************************************************************************************************
echo( Список запланированных задач Microsoft отсутствует
echo ****************************************************************************************************
@For /F "tokens=2,9,17,19,20,21,22 delims=," %%a in ('SCHTASKS /Query /NH /FO CSV /V ^|find /I /V "Microsoft" ^|findstr /I /C:"VBS" /C:"EXE"') do (
Set TaskName=%%~a
Set TaskPath=%%~b
Call :Trim_Dequote !TaskName! TaskName
Call :Trim_Dequote !TaskPath! TaskPath
echo "!TaskName!"
echo "!TaskPath!"
echo %%c;%%d;%%f;%%g
echo( ---------------------------------------------------------------------------------------------------
)
)
>> "%Log%" (
echo(
echo ****************************************************************************************************
echo( Список служб Microsoft отсутствует
echo ****************************************************************************************************
@for /f "tokens=*" %%a in (
'WMIC service where "Not PathName like '%%Micro%%' AND Not PathName like '%%Windows%%'" get Name^,DisplayName^,PathName^,Status'
) do (
@for /f "delims=" %%b in ("%%a") do (
echo %%b
)
)
)
>> "%Log%" (
echo(
echo ****************************************************************************************************
Reg Query "%Winlogonkey%" | find /I "userinit"
)
If Exist "%Log%" Start /MAX "Log" "%Log%" & Exit
::-----------------------------------------------------------------------------------
:Trim_Dequote <Var> <NewVar>
(
echo Wscript.echo Trim_Dequote("%~1"^)
echo Function Trim_Dequote(S^)
echo If Left(S, 1^) = """" And Right(S, 1^) = """" Then Trim_Dequote = Trim(Mid(S, 2, Len(S^) - 2^)^) Else Trim_Dequote = Trim(S^)
echo End Function
)>"%VbsFile%"
for /f "delims=" %%a in ('Cscript //nologo "%VbsFile%"') do (
set "%2=%%a"
)
Del "%VbsFile%" /F >nul 2>&1
exit /b
REM ------------------------------------------------------------------------------
:GetFileNameWithDateTime <FileName>
for /f "skip=1" %%x in ('wmic os get localdatetime') do if not defined MyDate set "MyDate=%%x"
set "%1=%MyDate:~0,4%-%MyDate:~4,2%-%MyDate:~6,2%-%MyDate:~8,2%-%MyDate:~10,2%"
Exit /B
REM -----------------------------------------------------------------------------
:Generate_VBS_File
>"%VbsFile%" (
echo Option Explicit
echo Dim Ws,objStartFolder,objFSO,objFolder,colFiles
echo Dim objFile,strFilePath,Lnk,Title
echo Title = "Извлечение целевого пути из файлов .lnk и .url от Hackoo 2020"
echo Set Ws = CreateObject("Wscript.Shell"^)
echo If WSH.Arguments.Count = 0 Then MsgBox "Отсутствуют аргументы",vbExclamation,Title : Wscript.Quit(1^)
echo objStartFolder = WSH.Arguments(0^)
echo Set objFSO = CreateObject("Scripting.FileSystemObject"^)
echo Set objFolder = objFSO.GetFolder(objStartFolder^)
echo Set colFiles = objFolder.Files
echo For Each objFile in colFiles
echo strFilePath = objFile.Path
echo If Ucase(objFSO.GetExtensionName(strFilePath^)^) = "LNK"_
echo Or Ucase(objFSO.GetExtensionName(strFilePath^)^) = "URL" Then
echo Call ExtractTargetPath(strFilePath^)
echo End If
echo Next
echo '-------------------------------------------------------------
echo Sub ExtractTargetPath(Lnk^)
echo set Lnk = Ws.Createshortcut(Lnk^)
echo WScript.echo "Link="^& DblQuote(Lnk^) ^& vbcrlf ^&_
echo "Target="^& DblQuote(Lnk.TargetPath^) ^& vbcrlf ^&_
echo String(100,"-"^)
echo End Sub
echo '-------------------------------------------------------------
echo Function DblQuote(Str^)
echo DblQuote = Chr(34^) ^& Str ^& Chr(34^)
echo End Function
echo '-------------------------------------------------------------
)
Exit /B
REM -----------------------------------------------------------------------------
:Execute_VBS_File
cscript //nologo "%VbsFile%" "%~1"
Exit /B
REM -----------------------------------------------------------------------------
:RunAsAdmin
cls & color 9E & Mode 95,5
echo(
echo( ===========================================================
echo( Пожалуйста, подождите немного ... Запуск от имени администратора ....
echo( ===========================================================
Powershell start -verb runas '%0' Admin & Exit
REM -----------------------------------------------------------------------------
Ответ или решение
Если вы хотите задержать запуск программы Razer Synapse, но не можете найти её в планировщике задач, это может быть связано с тем, что программа запускается через другой механизм. В Windows существует несколько способов, с помощью которых программы могут запускаться при загрузке системы. Давайте рассмотрим, как вы можете это сделать и какие шаги предпринять.
Поиск в Планировщике задач
Первым делом, откройте Планировщик задач. Вы можете поискать задачу, связанную с Razer Synapse, в различных папках:
- Библиотека задач: В левом меню выберите "Библиотека планировщика задач" и просмотрите все заданные задачи.
- Система / Службы: Иногда задачи могут находиться в таких подпапках, как "Microsoft" или "Razer", поэтому обратите внимание на все доступные папки.
Если вы не нашли ее в Планировщике задач, возможно, она запускается через:
Другие Методы Запуска Программ
В Windows программы могут запускаться несколькими способами:
-
Папки автозагрузки:
- Для всех пользователей:
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
- Для текущего пользователя:
C:\Users\Имя_Пользователя\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
- Для всех пользователей:
-
Реестр:
- Ключи реестра для всех пользователей:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
- Ключи реестра для текущего пользователя:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
- Ключи реестра для всех пользователей:
-
Службы Windows:
- Некоторые программы могут быть запущены как службы. Откройте
services.msc
и просмотрите список служб, чтобы найти Razer Synapse.
- Некоторые программы могут быть запущены как службы. Откройте
-
Использование сторонних утилит:
- Autoruns: Это программа от SysInternals, которая позволяет увидеть все элементы автозагрузки в одной таблице. Вы можете скачать её здесь.
- WhatInStartup от NirSoft: Альтернативный инструмент для управления автозагрузкой.
Задержка Запуска Программы
Если вам удалось найти Razer Synapse в одном из этих мест, вы можете либо удалить ее оттуда, либо создать новую задачу в Планировщике задач с задержкой:
- Откройте Планировщик задач.
- Нажмите на "Создать задачу".
- В "Триггеры" выберите "При входе в систему".
- Выберите "Дополнительно" и установите задержку с помощью параметра "Отложить на" (например, 30 секунд).
- В разделе "Действия" выберите "Запустить программу" и укажите путь к Razer Synapse.
Заключение
Ваша проблема может быть решена, если правильно определить, как Razer Synapse запускается автоматически. После этого вы сможете настроить задержку его запуска через Планировщик задач. Если у вас есть еще вопросы или вы хотите узнать больше о других программных способах, не стесняйтесь спрашивать.