Use PowerShell to Determine Services with a StartType of Automatic or Manual with Trigger Start

Newer Windows operating systems have numerous services that are set to start automatically or manually with a triggered start. The following image is from a machine that’s running Windows 10 Enterprise Edition (version 1511):


The problem is when you’re trying to determine whether or not all of the services that are set to start automatically are running or not. These trigger start services can’t be filtered out using the Get-Service cmdlet or with WMI and they aren’t necessarily suppose to be running. The only way to filter them out is to query the registry.

Trigger start services have a “TriggerInfo” key under their registry key with one or more triggers defined beginning with “0”. The “DNS Client” service is one of these “Trigger Start” services on Windows 10:


The simplest way to check for the existence of a registry key is with the Test-Path cmdlet:


I decided to create a reusable tool that returns a list of trigger start services. This function is written so that it’s compatible with PowerShell version 2.0 and higher:

Just running this function without specifying any parameters gives you a list of both the automatic and manual trigger start services:


The name of a specific service can be specified:


Wildcards are permitted as well as positional parameters:


The display name of a service can be specified instead of the service name by using the other parameter set:


The DisplayName parameter also accepts wildcards:


Hopefully Microsoft will consider adding this sort of functionality to either the Get-Service cmdlet or WMI as they have with delayed start services in the RTM version of Windows 10. You can find my blog on that topic here.



  1. Pat O'Connell

    If you’d like to list the specific triggers (both start and stop) for each service, add two lines of code just after closing New-Object:
    $svcTrigs = @(cmd /c “sc qtriggerinfo $($service.Name)”)

  2. DeployGuy


    The line above is missing the trailing paren corrected version below


    Pat and Mike, Thanks for creating this, I found this useful to illustrate to myself and a colleague the nature of triggered services.

  3. Suman Chhetri

    I would like to filter out all the services which are Delayed AutoStart and Triggered AutoStart. Please help me achieving it.

  4. David Coates

    Is this still the case in 2020?


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: