DSC resource for configuring Windows services.
Carbon_Service [String] #ResourceName
{
Name = [string]
[Command = [string]]
[Credential = [PSCredential]]
[Delayed = [bool]]
[Dependency = [string[]]]
[DependsOn = [string[]]]
[Description = [string]]
[DisplayName = [string]]
[Ensure = [string]{ Absent | Present }]
[OnFirstFailure = [string]{ Reboot | Restart | RunCommand | TakeNoAction }]
[OnSecondFailure = [string]{ Reboot | Restart | RunCommand | TakeNoAction }]
[OnThirdFailure = [string]{ Reboot | Restart | RunCommand | TakeNoAction }]
[Path = [string]]
[PsDscRunAsCredential = [PSCredential]]
[RebootDelay = [Int32]]
[ResetFailureCount = [Int32]]
[RestartDelay = [Int32]]
[RunCommandDelay = [Int32]]
[StartupType = [string]{ Automatic | Disabled | Manual }]
[UserName = [string]{ LocalService | LocalSystem | NetworkService }]
}
The Carbon_Service resource configures Windows services, including name, credentials, startup type, state, failure actions, and dependencies.
The service is installed when the Ensure property is set to Present. If the service already exists, and its configuration doesn't match the properties being set, the service is stopped, its configuration updated, and the service is restarted. Properties not passed are ignored/left as-is.
In addition to installing the service, this resource also grants the service user the logon as a service privilege and execute permissions on the service executable.
The service is uninstalled when the Ensure property is set to Absent. The service is stopped, then uninstalled.
Carbon_Service is new in Carbon 2.0.
| Name | Type | Description | Required? | Pipeline Input | Default Value |
|---|---|---|---|---|---|
| Name | String | The name of the service. |
true | false | |
| Path | String | The path to the service. |
false | false | |
| StartupType | String | The startup type: automatic, manual, or disabled. Default is automatic. |
false | false | |
| Delayed | SwitchParameter | Used in combination with the If If For all other values of This parameter was added in Carbon 2.5. |
false | false | False |
| OnFirstFailure | FailureAction | What to do on the service's first failure. Default is to take no action. |
false | false | |
| OnSecondFailure | FailureAction | What to do on the service's second failure. Default is to take no action. |
false | false | |
| OnThirdFailure | FailureAction | What to do on the service' third failure. Default is to take no action. |
false | false | |
| ResetFailureCount | Int32 | How many seconds after which the failure count is reset to 0. |
false | false | 0 |
| RestartDelay | Int32 | How many milliseconds to wait before restarting the service. Default is 60,0000, or 1 minute. |
false | false | 0 |
| RebootDelay | Int32 | How many milliseconds to wait before handling the second failure. Default is 60,000 or 1 minute. |
false | false | 0 |
| Dependency | String[] | What other services does this service depend on? |
false | false | |
| Command | String | The command to run when a service fails, including path to the command and arguments. |
false | false | |
| RunCommandDelay | Int32 | How many milliseconds to wait before running the failure command. Default is 0, or immediately. |
false | false | 0 |
| DisplayName | String | The service's display names. |
false | false | |
| Description | String | The service's description. |
false | false | |
| UserName | String | The system account the service should run as. |
false | false | |
| Credential | PSCredential | The credentials of the custom account the service should run as. |
false | false | |
| Ensure | String | If |
false | false | Present |
Demonstrates how to install a service that runs as a custom account and has custom failure actions.
Carbon_Service InstallNoOpService
{
Name = 'CarbonNoOpService';
Path = 'C:\Projects\Carbon\bin\NoOpService.bin';
StartupType = 'Automatic';
Credential = $noOpServiceCreential';
OnFirstFailure = 'RunCommand';
Command = 'example.exe /fail %1%';
RunCommandDelay = 1000;
OnSecondFailure = 'Restart';
RestartDelay = (1000*60*5); # 5 minutes as milliseconds
}
Demonstrates how to install a service that runs as a built-in account.
Carbon_Service InstallNoOpService
{
Name = 'CarbonNoOpService';
Path = 'C:\Projects\Carbon\bin\NoOpService.bin';
StartupType = 'Automatic';
UserName = 'LocalService';
}
Demonstrates how to remove a service.
Carbon_Service InstallNoOpService
{
Name = 'CarbonNoOpService';
Ensure = 'Absent';
}
Demonstrates how to set a service's start type Automatic (Delayed). This functionality was added in Carbon 2.5.
Carbon_Service InstallNoOpService
{
Name = 'CarbonNoOpService';
Path = 'C:\Projects\Carbon\bin\NoOpService.bin';
StartupType = 'Automatic';
Delayed = $true;
Ensure = 'Present';
}