Auto Start Confirm Christian Galla
winget install --id=ChristianGalla.AutoStartConfirm -e
Notifies and asks for permission if a program wants to get automatically started when Windows is started, or a user is logging on.
README
Auto Start Confirm
More and more programs want to start automatically when Windows starts, or a user logs on.
Many startup programs can slow down the boot process. In addition, malicious software, such as keyloggers, can survive reboots.
Therefore, this program monitors whether a program wants to start automatically and asks the user for permission.
Table of contents
- Changelog
- Installation
- Usage documentation
- Usage warning
- State of development
- Current limitations
- Similar programs
- How to build and debug
Changelog
You can find recent changes in the file CHANGELOG.md.
Installation
The installers of the latest version can be downloaded from the release page.
There are two versions:
- AutoStartConfirmSetup_Standalone.msi
- AutoStartConfirmSetup_FrameworkDependent.msi
Usually, you should download and install AutoStartConfirmSetup_Standalone.msi. This version includes all dependencies and can easily be installed on any computer.
The installer AutoStartConfirmSetup_FrameworkDependent.msi includes all dependencies except the .NET Desktop Runtime 8 and is therefore much smaller. If multiple programs are using this runtime, it is possible to save disk space having only one central runtime installation. When using this installer, you are responsible for installing the runtime. If it is not installed, the program cannot run.
Windows Package Manager (Winget)
This program is available via winget. You can install it using the following command prompt or PowerShell command:
winget install ChristianGalla.AutoStartConfirm
Usage documentation
The program starts in the background and can be accessed using its icon in the notification area (usually in the bottom right corner of the taskbar).
All currently known auto starts are listed in the "Current" tab. A history of added or removed auto starts can be accessed using the "Add history" and "Remove history" tabs.
For each auto start there is a "Confirm" and "Remove" button to easily mark checked auto starts and remove unwanted ones.
When a new auto start is added or removed, a toast notification appears:
A click on the "Ok" button confirms the change and a click on the "Revert" button undoes it.
When the program is started, it compares the current auto starts to the known ones when it last run. Therefore, changes will be detected, even if the program is not running all time.
Usage warning
Some useful programs require services to start automatically. When their auto start is blocked, they may not function properly. Also, for example a blocked update service may lead to insecure environments because of not patched security bugs in old program versions.
Therefore, auto starts should only be blocked if there is no negative impact on the affected programs.
State of development
There are many locations Windows provides for programs to start automatically. Currently only the following locations are monitored by Auto Start Confirm.
Currently monitored
- [x] Boot execute
- [x] Appinit DLLs
- [x] Logon
- [x] Scheduled Tasks
- [x] Services and drivers
Implementation currently not planned
- [ ] Winlogon
- [ ] Known DLLs
- [ ] Explorer Addons
- [ ] Image hijacks
- [ ] Winsock
- [ ] LSA security providers
- [ ] Print monitor DLLs
- [ ] Codecs
- [ ] Internet Explorer Addons
- [ ] Office Add-Ins
- [ ] WMI
For details see the parameters of the Autoruns PowerShell Module.
Current limitations
To be able to use as less privileges as needed, Auto Start Confirm currently runs in user mode and therefore can only monitor and react after changes occurred. There are a few advantages of this implementation, for example even users that are not administrators are able to run the program. Currently, it is not planned to change this implementation.
Currently, it is not planned to create a 32-bit version of the program because most Windows installations are already 64-bit and additional work is needed for example, to access 64-bit registry keys from a 32-bit program.
Similar programs
This program is similar to Sysinternals Autoruns. Sysinternals Autoruns is a great tool for analyzing and disabling or enabling existing autostart programs. However, it lacks the function to monitor auto start locations in background and ask users for permission when changes occurred.
Sysinternals Autoruns is not an Open Source program, but there is a Autoruns PowerShell Module that was used as reference to determine where Auto Start Confirm should look for auto start locations.
How to build and debug
This program was created in Visual Studio.
There are some NuGet dependencies that must be installed before it can be compiled.
To build the installers using the WiX Toolset execute Build/Daily_Debug.bat for a debug or Build/Daily_Release.bat for a release version build.
To extract third party licenses run:
dotnet tool install --global dotnet-project-licenses
dotnet-project-licenses -i AutoStartConfirmLib -o AutoStartConfirmLib\Licenses -t --timeout 60 -e -c -f AutoStartConfirmLib\Licenses -u