Restart-Service

Mastering PowerShell: Restart-Service

Welcome back to Wahmans PowerShell Blog! Today we are diving into a very handy cmdlet that comes in clutch when working with Windows services — Restart-Service.

What Does Restart-Service Do?

According to Microsoft, the Restart-Service cmdlet stops and then starts one or more services. Essentially, it’s a quick and efficient way to restart a service without having to manually stop and start it separately. This can be a lifesaver when you’re managing services that need a reset due to configuration changes, updates, or to fix performance issues.

Examples from Beginner to Advanced

1. Restart a Single Service (Beginner)

Let’s say you want to restart the Print Spooler service on your machine:

Restart-Service -Name "Spooler"

This will stop and start the Spooler service.

2. Restart Multiple Services (Intermediate)

Need to restart both the DHCP Client and DNS Client services? Easy:

Restart-Service -Name "Dhcp", "Dnscache"

This is useful when you need to reset network configurations.

3. Restart All Services Matching a Pattern (Advanced)

You can use wildcards to restart services that match a certain name pattern. For example, restarting all services that start with ‘Win’:

Get-Service -Name "Win*" | Restart-Service

This is particularly useful in service management scripts.

4. Restart a Service and Wait Until It’s Running (Advanced)

For scenarios where it is critical to ensure the service is fully restarted before moving on, use this:


Restart-Service -Name "W32Time"
Get-Service -Name "W32Time" | Wait-Until { $_.Status -eq 'Running' }

Note: Wait-Until is pseudo-code. In practice, you can use a loop to check status if desired. Here’s a working example:


Restart-Service -Name "W32Time"
do {
    Start-Sleep -Seconds 1
    $status = (Get-Service -Name "W32Time").Status
} while ($status -ne 'Running')

Wrapping Up

As demonstrated, Restart-Service is a versatile cmdlet that can save you a lot of time and scripting effort. Whether you’re performing a quick service restart or scripting a robust automation solution, this cmdlet is definitely worth keeping in your PowerShell toolbox.

Happy scripting, and I will see you in the next post!

Leave a Reply

Your email address will not be published. Required fields are marked *