Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use Get-Service to find and inspect Windows services, then Start-Service, Stop-Service, Restart-Service, or Set-Service to manage them. Service changes generally require appropriate permissions; run PowerShell as an administrator when needed. For remote computers in PowerShell 6.0 and later, run service commands through Invoke-Command, not a -ComputerName parameter on the service cmdlets.

Find a service and check its status

Get-Service returns objects for services on the computer, including running and stopped services. Filter by service name or by the human-readable display name:

Get-Service
Get-Service -Name 'Spooler'
Get-Service -DisplayName '*Print*'

In the results, Name is the service name used in many commands; DisplayName is its readable label. Since the results are objects, you can select properties or pass them to other service cmdlets.

$svc = Get-Service -Name 'Spooler'
$svc | Select-Object Name, DisplayName, Status, StartType

To inspect relationships before changing a service, retrieve its required services and dependent services:

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Get-Service -Name 'Spooler' -RequiredServices -DependentServices

Required services are services the selected service relies on; dependent services rely on the selected service. Check these relationships before stopping or restarting, because they can affect whether an operation succeeds and which workloads are disrupted. See Microsoft’s Get-Service documentation.

Start, stop, or restart a service

Use the lifecycle cmdlets to send service-control requests. You can preview supported operations with -WhatIf before executing them.

Start-Service -Name 'Spooler' -WhatIf
Start-Service -Name 'Spooler'
Stop-Service -Name 'Spooler' -WhatIf
Stop-Service -Name 'Spooler'
Restart-Service -Name 'Spooler'

Restart-Service sends a stop message followed by a start message; it is not an instantaneous status toggle. Plan for interruption to applications or users relying on that service. Microsoft documents the behavior in the Start-Service, Stop-Service, and Restart-Service references.

Change a service’s startup type

A service configured as Disabled cannot be started directly. If changing that configuration is intended and authorized, set a permitted startup type first, then start the service if appropriate.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Set-Service -Name 'Spooler' -StartupType Automatic
Start-Service -Name 'Spooler'

Set-Service also changes selected service metadata, such as its description:

Set-Service -Name 'Spooler' -Description 'Print Spooler service'

Use the correct service name and verify that the account has rights for the requested configuration change. Consult Microsoft’s Set-Service documentation for supported properties and parameters.

Manage a service on a remote computer

In PowerShell 6.0 and later, the service cmdlets do not provide a -ComputerName parameter. Use PowerShell remoting with Invoke-Command instead:

Invoke-Command -ComputerName 'Server01' -ScriptBlock {
    Get-Service -Name 'Spooler'
    Restart-Service -Name 'Spooler'
}

This runs the commands on Server01. PowerShell remoting uses WS-Management; remoting must be configured on the target, and your account must be authorized to connect and manage the service. See Microsoft’s Invoke-Command documentation and remote-command guidance.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Troubleshoot service commands

Start-Service says the service cannot be started

  • Check the service’s current status and startup type with Get-Service and Select-Object.
  • If the startup type is Disabled, the service cannot be started until its configuration is changed. Change it only if you intend to enable the service and are authorized to do so.
  • Confirm that your account has permission to control the service. An elevated PowerShell session is commonly required.

Stop-Service or Restart-Service fails

  • Inspect -RequiredServices and -DependentServices with Get-Service. Dependency relationships may prevent an operation or require services to be handled in an orderly sequence.
  • Consider the effect on applications that rely on the service before proceeding. Do not force an operation unless you understand and accept its consequences.

The service is visible, but the command is denied

Being able to query a service does not necessarily grant permission to change it. Starting, stopping, pausing, resuming, or restarting services is normally restricted to Administrators; configuration changes also require the relevant service permissions. Open PowerShell with elevation when appropriate, and verify the account’s rights rather than assuming visibility means control access.

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.