This page will show you how to stop
a Windows service. If you prefer we can easily modify the script to
Restart the service. In order to get a grounding in the PowerShell syntax associated with this 'Service' family of commands, I suggest that
you begin with my Get-Service page.
Preliminary Script
to List Services Which Are Running
Stopping the wrong service could
have disastrous effects on a server especially if you append the -force
parameter. This is why I suggest that you run this script and
select a less important service such as Bits, Spooler or Themes
# PowerShell script to list running services Clear-Host
Get-WmiObject Win32_Service ` | Where-Object {$_.State -eq
'Running'} ` | Format-Table name, state, status -auto
Learning Points
Note 1: To highlight the modular
nature of this script I have written it on three lines. The first
pipeline gets a list of Windows services, the second pipeline uses a
where statement to filter Running services, while the final line merely
formats the output.
I have chosen the Themes service as a vehicle to test the stop service
command. You may wish to substitute a different value for
$SrvName.
# PowerShell cmdlet to stop the named service "Themes"
Clear-Host
$SrvName = "Themes" $SrvName + " is now " + (Get-Service
$SrvName).status Stop-Service $SrvName $SrvName + " is now " +
(Get-Service $SrvName).status
Note 2: Naturally, for a
production script you could simplify to:
# Production script to stop a service Stop-Service -name
"Themes"
Note 3: To restart a service, simply change the verb from Stop to
Restart thus:
# Production restart service Clear-Host Restart-Service -name
"Themes"
Guy Recommends: A Free Trial of the Network Performance Monitor
(NPM)
SolarWinds'
Network Performance Monitor
will help you discover what's happening on your network. This
utility will also guide you through troubleshooting; the dashboard will
indicate whether the root cause is a broken link, faulty equipment or
resource overload.
What I like best is the way NPM suggests solutions to network
problems. Its also has the ability to monitor the health of individual VMware
virtual machines. If you are interested in troubleshooting, and creating
network maps, then I recommend that you try NPM now.
# PowerShell cmdlet to force a service to stop
Clear-Host
$SrvName = "Themes" $SrvName + " is now " + (Get-Service
$SrvName).status Stop-Service $SrvName -force $SrvName + " is now " +
(Get-Service $SrvName).status
Note 5: While -force probably is not needed for the
Themes service, there maybe times when you need this power.
However, don't abuse the -force parameter or else your server may stop
functioning in the way that you intended.
Guy Recommends: SolarWinds Engineer's Toolset v10
This
Engineer's Toolset v10 provides a comprehensive console of 50 utilities
for troubleshooting computer problems. Guy says it helps me
monitor what's occurring on the network, and each tool teaches me more about how the
underlying system operates.
There are so many good gadgets; it's like having free rein of a
sweetshop. Thankfully the utilities are displayed logically: monitoring,
network discovery, diagnostic, and Cisco tools. Try the SolarWinds Engineer's Toolset now!
Guy Recommends: SolarWinds Network Topology Mapper (NTM)
NTM will produce a neat diagram of your network topology. But that's
just the start;
Network Topology Mapper can
create an inventory of the hardware and software
of your machines and network devices. Other neat features include dynamic
update for when you add new devices to your network. I also love the ability to export
the diagrams
to Microsoft Visio.
Finally, Guy bets that if you test drive the Network Topology
Mapper then you will
find a device on your network that you had forgotten about, or someone else
installed without you realizing!
One aspect of remoting in PowerShell v 2.0 is simply to append
-computerName xyz to the command that you ran on the local machine.
For further research try:
Clear-Host Get-Command | Where { $_.parameters.keys -Contains
"ComputerName"}
Surprise! Get-Service is amongst the cmdlets that support
remoting, but stop, start and Restart-Service are not on the list.
More bad news, stop, start and Restart-Service really don't work on
network machines. Thus you have to employ different techniques
such as Get-WmiObject and InvokeMethod. Alternatively, you could
enter-PSSession and then run Restart-Service as if you were on the local
machine. However, to get that working you have to first
install and setup WinRM
The Service Family (Each member has a different verb)
Get-Service: Useful for listing
the services Set-Service:
Crucial parameter -startuptype
Start-Service: The verb 'start' says it all Stop-Service: Handy for
scripts which prevent unwanted services running e.g. Telnet Restart-Service: A nice
touch by the creator's of PowerShell; this cmdlet removes the need to
explicitly stop then start the service.
»
Summary of PowerShell's
Stop-Service Cmdlet
This page will show you how to stop a Windows service.
If circumstances demand, then you could modify the script to force a stop
even thought there are dependent services.
If you like this page then please share it with your friends
See more PowerShell examples of process and service
Please email me if you have a better example script. Also please report any factual mistakes, grammatical errors or broken links, I will be happy to correct the fault.
Windows Management Instrumentation (WMI) is
most useful for PowerShell scripting.
SolarWinds
have produced this
Free WMI Monitor to take the guess work out of which
WMI counters to use for applications like Microsoft Active Directory,
SQL or Exchange Server.