Component of the Microsoft Windows operating system
In Windows NT operating systems, a Windows service is a computer program that operates in the background.[1] It is similar in concept to a Unixdaemon.[1] A Windows service must conform to the interface rules and protocols of the Service Control Manager, the component responsible for managing Windows services. It is the Services and Controller app, services.exe, that launches all the services and manages their actions, such as start, end, etc.[2]
Windows services can be configured to start when the operating system is started and run in the background as long as Windows is running. Alternatively, they can be started manually or by an event. Windows NT operating systems include numerous services which run in context of three user accounts: System, Network Service and Local Service. These Windows components are often associated with Host Process for Windows Services. Because Windows services operate in the context of their own dedicated user accounts, they can operate when a user is not logged on.
The Services snap-in, built upon Microsoft Management Console, can connect to the local computer or a remote computer on the network, enabling users to:[1]
view a list of installed services along with service name, descriptions and configuration
change the startup type. Acceptable startup types include:
Automatic: The service starts at system startup.
Automatic (Delayed): The service starts a short while after the system has finished starting up. This option was introduced in Windows Vista in an attempt to reduce the boot-to-desktop time. However, not all services support delayed start.[6]
Manual: The service starts only when explicitly summoned.
Disabled: The service is disabled. It will not run.
change the user account context in which the service operates
configure recovery actions that should be taken if a service fails
inspect service dependencies, discovering which services or device drivers depend on a given service or upon which services or device drivers a given service depends
export the list of services as a text file or as a CSV file
The sc command's scope of management is restricted to the local computer. However, starting with Windows Server 2003, not only can sc do all that the Services snap-in does, but it can also install and uninstall services.[9]
The sc command duplicates some features of the net command.[10]
The ReactOS version was developed by Ged Murphy and is licensed under the GPL.[11]
sc sub-commands
Name
Description
Windows support
ReactOS support
query
Show service status
Yes
Yes
queryex
Show extended service info (e.g. pid, flags)
Yes
Yes
start
Start a service
Yes
Yes
pause
Pause a service
Yes
Yes
interrogate
Send an INTERROGATE control request to a service
Yes
Yes
continue
Continue a service
Yes
Yes
stop
Stop a service
Yes
Yes
config
permanently change the service configuration
Yes
Yes
description
Change a service description
Yes
Yes
failure
Change the actions taken by a service upon failure
Yes
Yes
failureflag
Yes
No
sidtype
Yes
No
privs
Yes
No
managedaccount
Yes
No
qc
Show the service config (e.g. dependencies, full path etc.)
Yes
Yes
qdescription
Query a service description
Yes
Yes
qfailure
Yes
No
qfailureflag
Yes
No
qsidtype
Yes
No
qprivs
Yes
No
qtriggerinfo
Yes
No
qpreferrednode
Yes
No
qmanagedaccount
Yes
No
qprotection
Yes
No
quserservice
Yes
No
delete
Delete a service
Yes
Yes
create
Create a service
Yes
Yes
control
Send a control to a service
Yes
Yes
sdshow
Display a service's security descriptor using SDDL
Yes
Yes
sdset
Sets a service's security descriptor using SDDL
Yes
Yes
showsid
Yes
No
triggerinfo
Yes
No
preferrednode
Yes
No
GetDisplayName
Show the service DisplayName
Yes
Yes
GetKeyName
Show the service ServiceKeyName
Yes
Yes
EnumDepend
Show the service Dependencies
Yes
Yes
boot
Yes
No
Lock
Yes
No
QueryLock
Yes
No
Examples
The following example enumerates the status for active services & drivers.[12]
Windows also includes components that can do a subset of what the snap-in, Sc.exe and PowerShell do. The net command can start, stop, pause or resume a Windows service.[21] In Windows Vista and later, Windows Task Manager can show a list of installed services and start or stop them. MSConfig can enable or disable (see startup type description above) Windows services.
Installation
Windows services are installed and removed via *.INF setup scripts by SetupAPI; an installed service can be started immediately following its installation, and a running service can be stopped before its deinstallation.[22][23][24]
Development
Writing native services
For a program to run as a Windows service, the program needs to be written to handle service start, stop, and pause messages from the Service Control Manager (SCM) through the System Services API. SCM is the Windows component responsible for managing service processes.
Wrapping applications as a service
The Windows Resource Kit for Windows NT 3.51, Windows NT 4.0 and Windows 2000 provides tools to control the use and registration of services: SrvAny.exe acts as a service wrapper to handle the interface expected of a service (e.g. handle service_start and respond sometime later with service_started or service_failed) and allow any executable or script to be configured as a service. Sc.exe allows new services to be installed, started, stopped and uninstalled.[25]
^"New Elevation PowerToys for Windows Vista". TechNet Magazine. Microsoft. June 2008. Retrieved 21 June 2013. The service CmdAsSystem is configured as interactive whose support is being deprecated. The service may not function properly. The problem is that this script tries to create and start an interactive service. Interactive services will not function correctly due to Session 0 Isolation in Windows Vista.
^ ab"Command-Line Reference: Sc". TechNet. Microsoft. Retrieved 8 January 2014. Windows 7, Windows 8, Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Vista