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 Comment

  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)”)


Leave a Reply

%d bloggers like this: