Stopping a Windows service from the command line is often faster than opening the Services console, especially when you are working on servers, remote systems, scripts, or troubleshooting tasks. Windows provides several reliable ways to do it, including classic Command Prompt tools such as net stop and sc stop, as well as PowerShell commands like Stop-Service.
Before stopping anything, it is to identify the correct service name, understand whether other services depend on it, and run the command with the right permissions. A display name shown in the Services app is not always the same as the internal service name used by command-line tools, so checking first can prevent failed commands or accidental disruption.
As an Amazon Associate I earn from qualifying purchases.
This guide covers the main command-line methods for stopping Windows services, how to handle names with spaces, how to work with remote computers, and how to confirm the service actually stopped. It also explains common problems such as access denied errors, dependency warnings, and services that remain stuck in a stopping state.
Check the Service Name Before Stopping It
Before you stop a Windows service from the command line, confirm the service’s actual service name, not just its display name. Windows services usually have two names: the friendly name shown in Services.msc, such as Windows Update, and the internal service name used by commands, such as wuauserv. Command-line tools often require the internal name, and using the wrong value can stop a different service or cause the command to fail.
#1 Best Overall
- 14" diagonal, 1366x768 resolution, HD BrightView LED, Glossy NON-TOUCH Display
In Command Prompt, you can list services and their internal names with sc query. To narrow the results, combine it with findstr. For example, if you know part of the display name, search for it first and then inspect the matching service entry. The output typically includes fields such as SERVICE_NAME, DISPLAY_NAME, STATE, and TYPE. The value next to SERVICE_NAME is the one you pass to commands such as sc stop.
PowerShell provides a more structured way to check names. Get-Service shows both the internal Name and the user-friendly DisplayName. For example, searching by display name helps when you only know what appears in the Services app. Once you find the service, use the Name property with PowerShell commands such as Stop-Service. This avoids ambiguity when several services have similar display names.
| What you see | Example | Where it is used |
|---|---|---|
| Display name | Windows Update | Services app, user-facing lists, PowerShell DisplayName searches |
| Service name | wuauserv | sc.exe commands, PowerShell Name parameter, scripts |
Also check whether the service has dependent services before stopping it. A dependent service relies on another service to run, so stopping the parent can interrupt additional components. In Command Prompt, sc enumdepend <ServiceName> shows services that depend on the specified service. In PowerShell, you can inspect dependencies with Get-Service -Name <ServiceName> -DependentServices. If the service is business-critical, part of security software, a database engine, or a remote access component, confirm the impact before stopping it, especially on a production server.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Be careful with service names that contain spaces when using display-name based commands. Internal service names often avoid spaces, but not always. If a command accepts a display name or another value containing spaces, wrap it in quotation marks. For repeatable administration, scripts should use exact service names and, where possible, validate that the service exists before trying to stop it. A quick check of the name, status, and dependencies reduces the chance of stopping the wrong component and makes the later stop command easier to troubleshoot.
Stop a Service Using Command Prompt
After you have confirmed the correct service name, you can stop a Windows service from Command Prompt with either net stop or sc stop. Open Command Prompt with elevated permissions first: select Start, type cmd, right-click Command Prompt, and choose Run as administrator. Without an elevated console, many service control operations fail with an access denied message, especially for system services or services installed by security, backup, database, or monitoring software.
The simplest command is net stop. It works well for common administrative tasks and accepts the service display name when it is enclosed in quotation marks:
net stop "Windows Update"
You can also use the internal service name instead of the display name:
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Scan for outdated or missing drivers - takes under a minute3Clear out junk files and repair common Windows errorsnet stop wuauserv
If the service accepts the stop request, Command Prompt shows status text such as The Windows Update service is stopping followed by The Windows Update service was stopped successfully. If other services depend on the one you are stopping, net stop may list those dependent services and ask whether you want to continue. Read that list carefully before confirming, because stopping one core service can interrupt several related services at once.
Use sc stop for precise service control
The sc stop command is often preferred in scripts because it uses the service name directly and returns service state details. The syntax is:
sc stop wuauserv
Unlike net stop, sc stop expects the service name, not the friendly display name. If the service name contains spaces, wrap it in quotation marks, although most built-in Windows service names do not contain spaces. A successful request usually returns output that includes fields such as STATE, STOP_PENDING, or STOPPED. Seeing STOP_PENDING means Windows accepted the request but the service has not fully shut down yet.
Common Command Prompt examples
- Stop by display name:
net stop "Print Spooler" - Stop by service name:
net stop spooler - Stop with Service Control:
sc stop spooler - Query status after stopping:
sc query spooler
For services with dependencies, start with sc queryex or sc qc if you need more context before stopping anything. For example, sc qc spooler shows configuration details, while sc query spooler shows the current state. If a service remains in STOP_PENDING for an unusually long time, wait briefly and query it again before taking further action. Some services need time to close files, finish transactions, disconnect clients, or release network resources.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
If Command Prompt reports that the service name is invalid, recheck whether you are using the service name rather than only the display name. If it reports access denied, reopen Command Prompt as an administrator or use an account with rights to manage that service. If it reports that the service cannot be stopped, the service may be protected, disabled from manual control by policy, tied to dependent components, or managed by another application that immediately restarts it.
Stop a Service Using PowerShell
PowerShell provides a more flexible way to stop Windows services than the older Command Prompt tools, especially when you want to query a service first, pipe results between commands, or return an object that confirms the final state. Open PowerShell as an administrator before stopping system-level services: right-click Windows PowerShell or Terminal, then choose Run as administrator. Without elevated permissions, many services will return an access error even if the command syntax is correct.
The basic command uses Stop-Service with the service’s internal name, not necessarily the friendly display name shown in the Services app:
Stop-Service -Name "Spooler"
This example stops the Print Spooler service. If the service name contains special characters or spaces, keep it in quotation marks. Many Windows service names do not contain spaces, but quoting the value is a safe habit when writing reusable commands or scripts. You can also stop a service by display name with -DisplayName, but this is usually less reliable for automation because display names are easier to change and may vary between systems or language editions:
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →Stop-Service -DisplayName "Print Spooler"
Stop and return the updated service object
By default, Stop-Service does not print much output when it succeeds. If you want PowerShell to return the service object after sending the stop request, add -PassThru:
Stop-Service -Name "Spooler" -PassThru
The returned object includes fields such as Status, Name, and DisplayName. For a clearer check after the stop operation, run:
Get-Service -Name "Spooler"
If the service stopped successfully, the Status column should show Stopped. Some services take a few seconds to shut down because they are finishing active work, closing network connections, or waiting for child processes. In those cases, run Get-Service again after a short pause.
Handle services with dependencies
Some services cannot be stopped while other services depend on them. To inspect dependent services before stopping anything, use:
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteRank #2
- 256 GB SSD of storage.
- Multitasking is easy with 16GB of RAM
- Equipped with a blazing fast Core i5 2.00 GHz processor.
Get-Service -Name "ServiceName" -DependentServices
If dependent services are listed, decide whether it is safe to stop them too. Stopping a core service can interrupt applications, remote access, printing, monitoring agents, or database workloads. When you are certain the dependent services can also be stopped, -Force can be used:
Stop-Service -Name "ServiceName" -Force
Use -Force carefully, especially on production servers. It does not make every service stoppable; it only tells PowerShell to proceed in cases where dependent services would otherwise block the request. Services protected by Windows, controlled by security software, or stuck in a pending state may still refuse to stop.
Use pipeline-friendly filtering
PowerShell is especially useful when you need to find a service first and then stop it. For example, this finds services whose display name starts with a specific phrase and stops them:
Get-Service | Where-Object {$_.DisplayName -like "Example App*"} | Stop-Service
For scripts, prefer filtering as narrowly as possible so you do not stop unintended services. When testing a command that could match mulle services, run only the Get-Service and Where-Object portion first to review the results. After confirming the list is correct, pipe it to Stop-Service.
Stop a Service on a Remote Computer
You can stop a Windows service on another machine from the command line, but the method you choose depends on what is enabled in the environment. PowerShell remoting is usually the most flexible option for domain-joined computers, while legacy tools such as sc.exe can work well when the Service Control Manager is reachable over the network. In all cases, use the service’s internal service name, not necessarily the display name shown in the Services console.
Use PowerShell Remoting
If PowerShell remoting is enabled on the target computer, use Invoke-Command to run Stop-Service remotely. This runs the stop operation on the remote system rather than relying on local service objects.
Example: Invoke-Command -ComputerName SERVER01 -ScriptBlock { Stop-Service -Name "Spooler" }
To force the service to stop when dependent services are running, include -Force inside the script block: Invoke-Command -ComputerName SERVER01 -ScriptBlock { Stop-Service -Name "Spooler" -Force }. Use this carefully because it may also stop services that depend on the target service. If you need alternate credentials, create or request them at the prompt: Invoke-Command -ComputerName SERVER01 -Credential DOMAIN\AdminUser -ScriptBlock { Stop-Service -Name "Spooler" }.
Recommended Free Tools
Use sc.exe Against a Remote Computer
The sc.exe command can send a stop request to a service on a remote computer by prefixing the computer name with double backslashes. This is useful in older environments or when you are already working in Command Prompt.
Example: sc.exe \\SERVER01 stop Spooler
For service names that contain spaces, quote the service name: sc.exe \\SERVER01 stop "Example Service". After issuing the command, sc.exe normally reports a pending or stopped state returned by the Service Control Manager. A successful stop request does not always mean the service is fully stopped immediately; some services take several seconds or longer to shut down cleanly.
Use Get-Service with a Remote Computer Name
On Windows PowerShell, Get-Service supports the -ComputerName parameter for querying services remotely. You can combine it with pipeline commands in some cases, but stopping services through direct remote execution is usually clearer and more reliable. For example, use Get-Service -ComputerName SERVER01 -Name Spooler to inspect the service, then stop it with Invoke-Command or sc.exe.
- PowerShell remoting: Best when WinRM is enabled and you need credential handling, scripting, or multiple commands.
- sc.exe: Best for quick service control from Command Prompt or scripts that already use Windows service control syntax.
- Remote verification: Always query the remote computer after sending the stop request to confirm the final state.
Remote service control commonly fails when the account lacks administrative rights on the target computer, Windows Firewall blocks the required management traffic, WinRM is disabled, or the Remote Service Management firewall rules are not allowed. In a domain environment, run the shell as an account that is a local administrator on the remote computer. For PowerShell remoting, the target must allow remoting with Enable-PSRemoting or equivalent Group Policy configuration. For sc.exe, the remote Service Control Manager must be reachable, and name resolution must correctly resolve the target computer name.
After stopping the service remotely, verify the result from the same management workstation. With PowerShell remoting, run Invoke-Command -ComputerName SERVER01 -ScriptBlock { Get-Service -Name "Spooler" }. With sc.exe, run sc.exe \\SERVER01 query Spooler and check that the state is STOPPED. If the state remains STOP_PENDING, wait briefly and query again before taking stronger action.
Verify That the Service Has Stopped
After sending a stop command, confirm the service actually reached the stopped state. A command can return before the service has fully shut down, especially if the service needs to close network connections, flush data, or stop child processes. Verification also helps you catch cases where the stop request failed silently, timed out, or was blocked by dependencies.
In Command Prompt, use sc query with the service name, not necessarily the display name. The output shows the current service state:
sc query "Spooler"
Look for the STATE line. If the service has stopped successfully, it should show STOPPED:
STATE : 1 STOPPED
If you prefer the older Service Controller command, net start can list currently running services. If the target service no longer appears in the list, it is not running:
net start
Check the Status with PowerShell
PowerShell provides a cleaner way to check service status. Use Get-Service with the service name:
Get-Service -Name "Spooler"
The Status column should show Stopped. For a more focused result, select only the fields you need:
Rank #3
- WINDOWS 11 | STABLE PERFORMANCE: Powered by Intel Celeron N4020 processor and Windows 11 system, this laptop delivers stable performance for everyday computing tasks. It supports web browsing, online learning, document editing, email communication, and basic office work with optimized power efficiency, providing a practical and reliable experience for essential daily use for daily use.
- 15.6” FHD IPS DISPLAY: Features a 15.6-inch Full HD IPS display with narrow bezels, offering wider viewing angles and clearer image details compared to standard panels. The improved screen-to-body ratio enhances visual experience for study, reading, document work, and video playback, making it suitable for both productivity and entertainment use.
- 4GB DDR4 + 128GB eMMC STORAGE: Equipped with 4GB DDR4 memory and 128GB eMMC storage for everyday basics such as browsing, documents, email, and online learning platforms. The built-in TF card slot supports storage expansion up to 1TB, giving you more flexibility for files, photos, videos, and daily documents. TF card not included.
- CONNECTIVITY & PORTS: Includes 1× TF card slot, 2× USB 3.2 Gen1 ports, and 2× full-featured Type-C ports (USB 3.2 Gen1). The Type-C ports support data transfer, charging, and video output, enabling flexible connection with external devices such as monitors, storage, and peripherals for daily work and study use.
- LIGHTWEIGHT DESIGN | ONLINE COMMUNICATION: Designed with a slim, portable profile, this laptop is easy to carry for school, commuting, and travel. A built-in 1MP front camera supports online classes, video meetings, remote communication, and everyday conferencing. The 3300mAh battery works with the low-power system design to support practical daily use, while thermal optimization helps maintain quieter operation during extended tasks.
Get-Service -Name "Spooler" | Select-Object Name, DisplayName, Status
If you stopped the service by display name earlier, you can verify it the same way, but be careful with duplicate or similar display names:
Free tools Windows power users keep installed
One-click scans. No signup required.
Get-Service -DisplayName "Print Spooler"
Wait Until the Service Is Fully Stopped
Some services take a few seconds to transition from StopPending to Stopped. In PowerShell, you can wait for the status to change instead of repeatedly checking manually:
$service = Get-Service -Name "Spooler"
$service.WaitForStatus('Stopped','00:00:30')
Get-Service -Name "Spooler"
This waits up to 30 seconds for the service to stop, then checks the final status. If it still shows StopPending, the service may be slow, busy, or stuck.
Verify on a Remote Computer
If you stopped a service on another machine, verify the status on that same machine. With PowerShell remoting, run:
Invoke-Command -ComputerName "SERVER01" -ScriptBlock {
Get-Service -Name "Spooler" | Select-Object Name, Status
}
You can also use sc.exe against a remote computer:
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →sc \\SERVER01 query "Spooler"
For remote checks, make sure you are querying the correct host and have administrative rights. A local status check only tells you what happened on your own computer, not on the remote system where the service was stopped.
| Tool | Verification Command | Stopped Result |
|---|---|---|
| Command Prompt | sc query "ServiceName" |
STATE : 1 STOPPED |
| PowerShell | Get-Service -Name "ServiceName" |
Status: Stopped |
| Remote sc.exe | sc \\ComputerName query "ServiceName" |
STATE : 1 STOPPED |
If the service still shows Running, the stop command did not complete successfully. If it shows StopPending, wait briefly and check again. If it remains stuck, review dependent services, permissions, and related processes before attempting a forced termination or restarting the computer.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Troubleshoot Access Denied, Dependencies, and Stuck Services
If a service does not stop from the command line, the problem usually falls into one of three categories: insufficient permissions, another service depending on it, or the service being stuck in a transitional state such as Stop Pending. Start by reopening Command Prompt or PowerShell with elevated rights. In Windows Terminal, Command Prompt, or PowerShell, choose Run as administrator, then retry the stop command. Many system and security-related services cannot be controlled from a standard user session, even if the account is a local administrator.
Fix access denied errors
An Access is denied message means your current token does not have the required service control permission. Confirm that the shell is elevated, then check whether Group Policy, endpoint protection software, or service permissions are blocking the action. You can inspect the service configuration with sc qc ServiceName, but changing service security descriptors should be done carefully because incorrect permissions can prevent Windows or applications from functioning correctly. If you are stopping a service on a remote computer, make sure your account has administrative rights on that machine and that remote management traffic is allowed by the firewall.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallOutdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchHandle dependent services
Some services cannot stop while other services depend on them. With Command Prompt, use sc enumdepend ServiceName to list services that rely on the target service. In PowerShell, you can check dependencies with Get-Service -Name ServiceName -DependentServices. Stop the dependent services first, then stop the original service. For example, if ServiceA depends on ServiceB, stop ServiceA before stopping ServiceB. Be careful with core Windows services because stopping dependencies can interrupt networking, authentication, printing, update installation, or remote access.
- Command Prompt:
sc enumdepend ServiceNameshows services that must be stopped first. - PowerShell:
Get-Service -Name ServiceName -DependentServiceslists dependent services. - Force through PowerShell:
Stop-Service -Name ServiceName -Forcecan stop dependent services, but use it only when you understand the impact.
Deal with services stuck in Stop Pending
If a service remains in Stop Pending, wait briefly and check again with sc query ServiceName or Get-Service -Name ServiceName. Some services need time to close files, complete network operations, or release database connections. If the state does not change after several minutes, identify the process behind the service. Run sc queryex ServiceName and look for the PID. You can then inspect that process in Task Manager or with tasklist /fi "PID eq 1234", replacing 1234 with the actual process ID.
As a last resort, you can terminate the process with taskkill /pid 1234 /f. This is more abrupt than stopping the service normally and may cause unsaved work, incomplete transactions, or corrupted temporary state, so reserve it for hung services where a graceful stop has failed. If the service still returns immediately or becomes stuck again, review Event Viewer under Windows Logs and Applications and Services Logs for errors from the service, Service Control Manager, or the related application. After resolving the issue, verify the final state with sc query or Get-Service, and restart the server during a maintenance window if the service cannot be cleanly recovered.
Frequently Asked Questions
How do I find the exact Windows service name to use in a command?
Use services.msc, double-click the service, and copy the value shown as Service name, not the display name. From Command Prompt, you can also run sc query or sc getkeyname "Display Name" to look it up.
What is the difference between stopping a service with net stop and sc stop?
net stop is simpler and works well when you know the service name or accepted display name. sc stop talks directly to the Service Control Manager and is often better for scripting because it uses the real service name and returns detailed status output.
How do I stop a Windows service in PowerShell?
Run PowerShell as Administrator and use Stop-Service -Name "ServiceName". If you only know the display name, use Get-Service -DisplayName "Display Name" first, then pipe it to Stop-Service or copy the service’s Name value.
How can I tell if the service actually stopped?
In Command Prompt, run sc query ServiceName and check that the state shows STOPPED. In PowerShell, run Get-Service -Name "ServiceName" and confirm the Status column shows Stopped.
What should I do if Windows says Access is denied or the service will not stop?
Open Command Prompt or PowerShell with Administrator rights, then try the command again. If the service has dependent services, stop those first or use PowerShell with dependency handling. If the service is stuck in STOP_PENDING, check its process ID with sc queryex ServiceName and only terminate the process if you understand the impact on the system or application.
Bottom Line
Stopping a Windows service from the command line is straightforward once you know the right tool: use net stop or sc stop in Command Prompt, or Stop-Service in PowerShell. Always run your shell as an administrator, use the exact service name when needed, and check dependencies before stopping anything critical.
After issuing the stop command, verify the result with sc query, Get-Service, or the Services console. If the service will not stop, review permissions, dependent services, and running processes before forcing changes on a production or shared system.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




