PowerShell Commands

Restart-Service

Restart-Service [-Confirm] -DisplayName* <String[]> [-Exclude <String[]>] [-Force] [-Include <String[]>][-PassThru] [-WhatIf] [<CommonParameters>]
Restart-Service [-InputObject*] <ServiceController[]> [-Confirm] [-Exclude <String[]>] [-Force] [-Include<String[]>] [-PassThru] [-WhatIf] [<CommonParameters>]
Restart-Service [-Name*] <String[]> [-Confirm] [-Exclude <String[]>] [-Force] [-Include <String[]>] [-PassThru][-WhatIf] [<CommonParameters>]

The Restart-Service cmdlet sends a stop message and then a start message to the Windows Service Controller for a specified service. If a service was already stopped, it is started without notifying you of an error. You can specify the services by their service names or display names, or you can use the InputObject parameter to pass an object that represents each service that you want to restart.

Parameters

-Confirm [<SwitchParameter>]

  • Default value is False
  • Accepts pipeline input False

Prompts you for confirmation before running the cmdlet.

-DisplayName <String[]>

  • This value is required
  • Default value is None
  • Accepts pipeline input False

Specifies the display names of services to restarted. Wildcard carachters are permitted.

-Exclude <String[]>

  • Default value is None
  • Accepts pipeline input False

Specifies services that this cmdlet omits. The value of this parameter qualifies the Name parameter. Enter a name element or pattern, such as s*. Wildcard characters are permitted.

-Force [<SwitchParameter>]

  • Default value is False
  • Accepts pipeline input False

Restarts a service that has dependent services.

-Include <String[]>

  • Default value is None
  • Accepts pipeline input False

Specifies services that this cmdlet restarts. The value of this parameter qualifies the Name parameter. Enter a name element or pattern, such as s*. Wildcard characters are permitted.

-InputObject <ServiceController[]>

  • This value is required
  • Default value is None
  • Accepts pipeline input ByValue

Specifies ServiceController objects that represent the services to restart. Enter a variable that contains the objects, or type a command or expression that gets the objects.

-Name <String[]>

  • This value is required
  • Default value is None
  • Accepts pipeline input ByPropertyName

Specifies the service names of the services to restart.

-PassThru [<SwitchParameter>]

  • Default value is False
  • Accepts pipeline input False

Returns an object that represents the service. By default, this cmdlet does not generate any output.

-WhatIf [<SwitchParameter>]

  • Default value is False
  • Accepts pipeline input False

Shows what would happen if the cmdlet runs. The cmdlet is not run.

<CommonParameters>

This cmdlet supports the common parameters: Verbose, Debug,ErrorAction, ErrorVariable, WarningAction, WarningVariable,OutBuffer, PipelineVariable, and OutVariable.

Inputs
System.ServiceProcess.ServiceController, System.String
You can pipe a service object or a string that contains a service name to this cmdlet.
Outputs
None, System.ServiceProcess.ServiceController
This cmdlet generates a System.ServiceProcess.ServiceController object that represents the restarted service, if you specify the PassThru parameter. Otherwise, this cmdlet does not generate any output.
Examples
  1. Restart a service on the local computer:
    PS C:\> Restart-Service -Name winmgmt
    

    This command restarts the Windows Management Instrumentation service (WinMgmt) on the local computer.

  2. Exclude a service:
    PS C:\> Restart-Service -DisplayName "net*" -Exclude "net logon"
    

    This command restarts the services that have a display name that starts with Net, except for the Net Logon service.

  3. Start all stopped network services:
    PS C:\> Get-Service -Name "net*" | Where-Object {$_.Status -eq "Stopped"} | Restart-Service
    

    This command starts all of the stopped network services on the computer.

    This command uses the Get-Service cmdlet to get objects that represent the services whose service name starts with net. The pipeline operator (|) sends the services object to the Where-Object cmdlet, which selects only the services that have a status of stopped. Another pipeline operator sends the selected services to Restart-Service .

    In practice, you would use the WhatIf parameter to determine the effect of the command before you run it.

Additional Notes
 Restart-Service * can control services only when the current user has permission to do this. If a command does 
 not work correctly, you might not have the required permissions. To find the service names and display names 
 of the services on your system, type Get-Service ". The service names appear in the Name column, and the 
 display names appear in the DisplayName * column.

This work is licensed under a Creative Commons Attribution 4.0 International. It is attributed to Microsoft Corporation and can be found here.

PowerShell Commands