IServices
Declaration
IServices : IDispatch
Overview
This interface is meant to add new service operation or delete/edit the existing ones.
Properties
Array<IBaseServiceOperation> ServiceOperations - Gets the collection of project service operations.
Methods
NewServiceInstallOperation(IFile aServiceSourceFile) returns
IServiceInstallOperation
Creates a new service install operation.
Automatically adds a service control operation for the new service.
NewServiceControlOperation(String aServiceName) returns
IServiceControlOperation
Creates a new service control
operation.
NewServiceConfigureOperation(String aServiceName) returns
IServiceConfigureOperation
Creates new service configure
operation.
NewServiceFailureOperation(String aServiceName) returns
IServiceFailureOperation
Creates new service configure
operation.
DeleteServiceOperation(IBaseServiceOperation aOperation)
Deletes a service operation.
Example
$advinst = new-object -com AdvancedInstaller
$prj = $advinst.LoadProject("D:\services.aip")
# Add new service install operation
$serviceInstall = $prj.Services.ServiceOperations | where {$_.Name -eq "MyService" -and $_.OperationType -eq "Service Install"}[0]
if($serviceInstall -eq $null)
{
$serviceExe = $prj.FilesComponent.Files | where {$_.Name -eq "MyService.exe"}[0]
if($serviceExe -eq $null)
{
$serviceExe = $prj.FilesComponent.AddFileS("appdir", "D:\my_app_folder\MyService.exe")
}
$serviceInstall = $prj.Services.NewServiceInstallOperation($serviceExe)
$serviceInstall.Name = "MyService"
}
$serviceInstall.AllowDesktopInteraction = $true
$serviceInstall.Arguments = "/Run"
$serviceInstall.StartType = "OnDemand"
$serviceConfig = $prj.Services.ServiceOperations | where {$_.Name -eq "MySecondService" -and $_.OperationType -eq "Service Configuration"}[0]
if($serviceConfig -eq $null)
{
$serviceConfig = $prj.Services.NewServiceConfigureOperation("MySecondService")
}
$serviceConfig.ConfigureOnInstall = $true
$serviceConfig.ConfigureOnReinstall = $true
$serviceConfig.ConfigureOnUninstall = $false
$serviceConfig.SettingToChange = "TimeToRunFailureActions"
$serviceFail = $prj.Services.ServiceOperations | where {$_.Name -eq "MySecondService" -and $_.OperationType -eq "Service Failure"}[0]
if($serviceFail -eq $null)
{
$serviceFail = $prj.Services.NewServiceFailureOperation("MySecondService")
}
$serviceFail.ConfigureOnInstall = $true
$serviceFail.ConfigureOnReinstall = $true
$serviceFail.ConfigureOnUninstall = $false
$serviceFail.DaysBeforeResetFailureCount = 1
$serviceFail.RebootMessage = ""
$failureAction = $serviceFail.FailureActions | where {$_.Action -eq "RunProgram"}[0]
if($failureAction -eq $null)
{
$failureAction = $serviceFail.NewFailureAction("RunProgram", 1)
}
$serviceFail.RunProgram = "MySecondService.exe"
$serviceFail.RunProgramArguments = '/log "MySecondService has stopped."'
$prj.Save()
Topics
- IBaseServiceOperation
Interface for editing basic service operation properties. - IServiceControlOperation
Interface for editing service control operation properties. - IServiceFailureOperation
Interface for editing service failure operation properties. - IServiceInstallOperation
Interface for editing service installation operation properties. - IServiceConfigureOperation
Interface for editing service configure operation properties.