Every Windows admin out there has to deal with Windows services at some point. Automating service management with command-line tools like net stop and the sc command comes in handy when scripting Windows services.
In this tutorial, you will learn how to manage Windows services in just about every way from the command prompt.
Let’s get started!
Table of Contents
If you’d like to follow along with this tutorial, please make sure you have the following:
- A Windows 7+ computer. The tutorial will be using a Windows 10 Build 2004 machine.
Finding Service Names
sc commands are both command-line tools, it’s sometimes not the easiest to find the actual service names to work with. Both commands require you to provide a service name, not the service display name. You find the service name in the services.msc console as shown below
Managing Services with the SC Command
Let’s kick off this service management tutorial with the sc command. The sc command is a built-in command-line tool that’s been built into Windows for a long time. This command can handle everything you need to manage Windows services from the command prompt.
All commands in this section will also work on remote computers. To run
scagainst a remote computer, specify the computer name in the command e.g.
sc \\REMOTENAME <some command>.
1. To get started, open a command prompt as administrator.
2. Run the
sc query command. The
sc query command queries all Windows services and returns information such as the name (
SERVICE_NAME), display name (
DISPLAY_NAME), state, and more. If you don’t know the service name,
sc query is your friend to find it.
3. Once you have the service name you’d like to work with, append the name to
sc query like below to limit the output only to that particular service. You can see below that the Windows Update Agent service is
sc query wuauserv
4. Next, start the service by invoking
sc start followed by the name of the service. Once you do, you’ll see that Windows puts the service into a
START_PENDING state while it’s starting.
sc start wuauserv
sc start wuauserv
5. Wait a few seconds and check the status of the service with
sc query. You should now see that the service is running.
6. Along the same line as starting a service, you can also stop a service with the sc command using the
sc stop command. You’ll see the service turn into a
STOP_PENDING state. After a few seconds, check the status with
sc query like before.
sc stop wuauserv sc query wuauserv
7. Perhaps you’d prefer to suspend the service rather than stopping it. In that case, simply use the
sc pause command. You’ll see the service immediately goes into a
PAUSED state. The below example is using the
apphostcsv service as an example.
All the services do not support pausing. You can find all services that support pausing by running
sc queryand ensuring the service has a
sc pause apphostsvc
You’d then see in the Windows services applet that the service is paused.
When a service is running, it maintains its internal state and cache information. When stopped, the service clears all the cache and its internal state. When paused, the service maintains the cache and internal state.
8. To resume a suspending/paused service, run the
sc continuecommand. You’ll then see the service immediately goes back to a
sc continue apphostsvc
sc continue apphostsvc
Managing Services with the NET Command
One of the oldest and most useful Windows admin commands is the
net command. The
net command can do a lot but one of its strengths is working with services. Using the
net command, you can stop, start, pause and resume services with a single command like
This section will be working with the BITS and Windows Update services as an example.
On a Windows PC:
1. Open a Command Prompt as administrator.
2. Use the
net stop command to stop the BITS service providing the service name to stop. When you stop a service with
net stop, you’ll see the service go into a pending state and then, if all goes well, a stopped state.
net stop BITS
netcan’t query the status of services.
3. To start the service back up, replace
net will perform the opposite effect.
net start BITS
net start BITS
If the service is already started, you will see a message stating “The requested service has already been started”. Similarly, if the service is stopped and you attempt to stop it, you will see “The service is not started” message in output.
4. To pause a running service, similar to
sc, execute the
net pause command as shown below. To continue, use the
net pause AppHostSvc net continue AppHostSvc
Managing Multiple Services at Once
In the previous sections, you were working with a single service. Using the command prompt’s built in
for construct, you can extend that functionality to work with multiple services at once.
To manage multiple services at once:
First, create a text file like the one below with each service you’d like to start or stop separated with a new line. The
for construct will read this text file. This file will be saved in C:\Temp.
Run the below command. This command consists of six components:
/Fswitch to tell
forto read a file
tokensstring to tell for which items in each line of the text file to process. In this case, the example uses
forto read the entire line.
inoperator and file path to specify which file to read
doconstruct to tell the
forconstruct a command to execute
- A placeholder for each line in the text file (
%A) which represents each line in the text file as the
forconstruct processes it
In the example below, the command prompt is reading the C:\Temp\Services.txt file with line-delimited service names and running service commands against each service in the file.
for /F "tokens=*" %A in (c:\Temp\Services.txt) do sc start "%A" for /F "tokens=*" %A in (c:\Temp\Services.txt) do net start "%A" for /F "tokens=*" %A in (c:\Temp\Services.txt) do sc query "%A"
In this tutorial, you have learned how to use the
sc Windows commands to manage Windows services. You should now be able to stop, start, pause and resume Windows services via the command prompt.
How about taking the next step and learning how to manage Windows services with PowerShell?
More from Adam The Automator & Friends
Find out how many of your Active Directory users are using leaked passwords by running a free read-only scan with Specops Password Auditor.
Do more with PowerShell and transform your Code to Self Service with au2mator Self Service Portal
Why not write on a platform with an existing audience and share your knowledge with the world?