Manage trigger start services with Service Trigger Editor
Free!

Easily Configure Trigger-Start Services with Service Trigger Editor

Improve server performance by automatically starting (or stopping) your Windows Services when key events occur

Free For Windows 11/10 & Server 2022/2019/2016

Service Triggers allow Windows Services to start or stop when certain conditions are met. With triggers, services can run efficiently, only when necessary — instead of having to start at boot and running 24x7.

We created Service Trigger Editor to easily view, add or edit Service Triggers.


Trigger Start Services: Overview

What are Service Triggers / Trigger-Start Services?

Windows Services (essential utilities integrated with Windows that largely run in the background) have traditionally had two choices for when to run:

  1. Start when the computer boots ("Automatic"), or
  2. Run only when explicitly started by the user or a program ("Manual")
Choosing the "Manual" option surrenders life-cycle control to outside programs (or the user), so it is easy to see why many services are configured to start when the computer boots and continue to run 24x7 in the background. Most just hang around waiting for relevant events (for example, when a user logs on) and spend much of their time "sleeping" while nothing is going on. Even so, they steal valuable machine resources with their inefficient and constant polling for changes.

To improve the situation, Microsoft has wisely integrated an "event mechanism" directly into the Windows Services architecture. Services can now be started or stopped when certain conditions are met. For example, a service can ask Windows to start it when a USB device is plugged in — instead of having to run 24x7, constantly waking up and scanning the hardware for changes.

This powerful feature is called Service Triggers (or Trigger-Start Services, a misnomer, as services can be trigger-stopped as well).

All modern versions of Windows make use of Service Triggers. For example, in Windows Server 2019:

  • The ubiquitous Server service, which would run 24x7 in older versions of Windows, has been configured to start in response to relevant network traffic.
  • The Windows Time service, which synchronizes the time on your machine with other servers, is started only when the computer joins a domain.

Those changes have the potential to avoid running the services until needed, potentially lightening the load on the server.

Starting/Stopping Services

With Triggers, services can be started or stopped when:

  • A device arrives (or is present when the system starts);
  • The computer joins or leaves a domain;
  • A firewall port is opened or closed;
  • A machine policy or user policy changes;
  • The first IP address on the TCP/IP networking stack becomes available or the last IP address on the stack becomes unavailable.
  • A custom event (or system state change) occurs.

Microsoft will undoubtedly be adding other useful triggers in future releases of Windows.

Note that the use of the service triggers in Windows has been steadily growing with each release. For instance, Windows 8 shipped with 47 triggers while Windows 11 features over 109 trigger-enabled services!

For the technically inclined:



Trigger Start Services: Overview

What is Service Trigger Editor?

Service Trigger Editor is a free, portable utility that can add, change, or view the various triggers configured on Windows Services. It runs on all modern versions of Windows.

Service Triggers can be created and manipulated using the command-line SC tool (sc.exe). For example, here is SC showing us the triggers associated with the "Windows Time" service on Windows 11:

C:\>sc qtriggerinfo w32time
[SC] QueryServiceConfig2 SUCCESS

SERVICE_NAME: w32time

 START SERVICE
   DOMAIN JOINED STATUS : 1ce20aba-9851-4421-9430-1ddeb766e809 [DOMAIN JOINED]

But while we found SC to be good enough for occasional use, always having to resort to the command line became a drag when we were integrating Service Triggers into AlwaysUp, our easy-to-use utility that will run any application as a Windows Service. Hence Service Trigger Editor was born.


Trigger Start Services: Overview

Running Service Trigger Editor

  • There is no need to install Service Trigger Editor. Simply download the executable and double-click it to start the application.

    For your security, the executable is digitally signed by Core Technologies Consulting, LLC, the authors of the software.

    After downloading, you may want to move the program from your download folder to a more permanent location. We suggest C:\Program Files\Service Trigger Editor\

  • Service Trigger Editor needs administrative access to work with your Windows Services. You may be prompted to allow administrative access when starting the application:

    Please ensure that the program is properly signed by its authors, Core Technologies Consulting, LLC as pictured above.


Trigger Start Services: Overview

The Main Window

  • When Service Trigger Editor starts, you will be presented with the main window:

  • The top pane shows all the services installed on your PC. Those running will have a green circle to the left, while those having triggers will feature a blue puzzle-piece (the symbol of a trigger).

    Services can be started or stopped from the Service Menu.

    Choose Only Services With Triggers from the View Menu to hide the services that do not have triggers.

  • The bottom pane of the screen shows the triggers for the selected service (if there are any). The icons to the right capture some of the trigger's configuration.

    Use the Trigger menu to add, edit or remove triggers for the selected service.


Trigger Start Services: Overview

Adding a Trigger

  • To add a new trigger for a service, select that service in the top pane of the main window and choose Add... from the Trigger menu. This will summon the Add Trigger dialog, pictured here with the select-event drop down control extended:

  • Specify the action to take and the event that will trigger the action. For example, you can say "Start the service when the computer joins a domain".

    Some trigger events have non-trivial configuration and require additional data to be entered. Specifically:

    • A firewall port is opened/closed: You must enter one or more ports to be monitored. From Microsoft's technical documentation, the data should use this format, with some parts optional: <PORT>;<PROTOCOL>;<EXE-NAME>;<SERVICE-NAME-OR-SID>
    • A specific device arrives: You must select the device. The drop-down contains several known devices, but you can enter your own GUID if necessary. Please enter GUIDs enclosed in curly braces and format like this: {53f56307-b6bf-11d0-94f2-00a0c91efb8b}. Additional data can be entered as well.
    • A custom event occurs: You must enter the GUID of the event provider. Additional data can be entered as well.
    • A packet/request arrives on a network protocol: You must select the network protocol (or enter the GUID of one not listed) as well as an endpoint or interface GUID.
    • A custom system state change occurs: You must enter the GUID of the event provider. Additional data can be entered as well.


Trigger Start Services: Overview

Editing/Viewing a Trigger

  • To edit (or view) an existing trigger, highlight it in the bottom pane of the main window and choose Edit/View... from the Trigger menu. This will summon the Edit/View Trigger dialog, which is virtually identical to the Add Trigger dialog:

  • Please see Adding a Trigger for a description of the controls on the dialog.

Trigger Start Services: Overview

Removing a Trigger

  • To remove an existing trigger, highlight it in the lower pane of the main window and choose Remove from the Trigger menu. You will be asked to confirm removal, and if you do, the trigger will be removed from the list.
  • You can also select Remove All from the Trigger menu to remove all triggers for the selected service.

Service Trigger Editor is also available at MajorGeeks.com.