New-Service [-Name*] <String> [-BinaryPathName*] <String> [-Confirm] [-Credential <PSCredential>] [-DependsOn<String[]>] [-Description <String>] [-DisplayName <String>] [-StartupType {Boot | System | Automatic | Manual |Disabled}] [-WhatIf] [<CommonParameters>]
The New-Service cmdlet creates a new entry for a Windows service in the registry and in the service database. A new service requires an executable file that runs during the service.
The parameters of this cmdlet let you set the display name, description, startup type, and dependencies of the service.
-BinaryPathName <String>
Specifies the path of the executable file for the service. This parameter is required.
-Confirm [<SwitchParameter>]
Prompts you for confirmation before running the cmdlet.
-Credential <PSCredential>
Specifies a user account that has permission to perform this action.
Type a user name, such as User01 or Domain01\User01, or enter a PSCredential object, such as one generated by the Get-Credential cmdlet. If you type a user name, this cmdlet prompts you for a password.
-DependsOn <String[]>
Specifies the names of other services upon which the new service depends. To enter multiple service names, use a comma to separate the names.
-Description <String>
Specifies a description of the service.
-DisplayName <String>
Specifies a display name for the service.
-Name <String>
Specifies the name of the service. This parameter is required.
-StartupType <ServiceStartMode>
Sets the startup type of the service. The acceptable values for this parameter are:
- Manual. The service is started only manually, by a user, using the Service Control Manager, or by an application. - Automatic. The service is started or was started by the operating system, at system start-up. If an automatically started service depends on a manually started service, the manually started service is also started automatically at system startup. - Disabled. The service is disabled and cannot be started by a user or application.
The default value is Automatic.
-WhatIf [<SwitchParameter>]
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.
PS C:\> New-Service -Name "TestService" -BinaryPathName "C:\WINDOWS\System32\svchost.exe -k netsvcs"
This command creates a service named TestService.
PS C:\> New-Service -Name "TestService" -BinaryPathName "C:\WINDOWS\System32\svchost.exe -k netsvcs" -DependsOn NetLogon -DisplayName "Test Service" -StartupType Manual -Description "This is a test service."
This command creates a service named TestService. It uses the parameters of New-Service to specify a description, startup type, and display name for the new service.
PS C:\> Get-WmiObject win32_service -Filter "name='testservice'"
ExitCode : 0
Name : testservice
ProcessId : 0
StartMode : Auto
State : Stopped
Status : OK
This command uses Get-WmiObject to get the Win32_Service object for the new service. This object includes the start mode and the service description.
PS C:\> sc.exe delete TestService
- or -
PS C:\> (Get-WmiObject win32_service -Filter "name='TestService'").delete()
This example shows two ways to delete the TestService service. The first command uses the delete option of Sc.exe. The second command uses the Delete method of the Win32_Service objects that Get-WmiObject returns.
* To run this cmdlet on Windows Vista and later versions of the Windows operating system, start Windows PowerShell by using the Run as administrator option. To delete a service, use Sc.exe, or use the Get-WmiObject cmdlet to get the Win32_Service object that represents the service and then use the Delete * method to delete the service. The object that Get-Service returns does not have a delete method.
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