Share via


Erstellen eines Diensts

Beschreibung

In diesem Beispiel wird gezeigt, wie Sie die Service Ressource verwenden können, um sicherzustellen, dass ein Dienst vorhanden ist und ausgeführt wird.

Mit "Set to Present, Name set to , and Path set C:\FilePath\MyServiceExecutable.exeService1to , the resource creates Service1 if it't exist with MyServiceExecutable.exe as the ausführbare file and starts it.

Wenn Service1 vorhanden, aber nicht ausgeführt wird, wird die Ressource gestartet.

Mit Invoke-DscResource

Dieses Skript zeigt, wie Sie die Service Ressource mit dem Invoke-DscResource Cmdlet verwenden können, um sicherzustellen, dass der Service1 Dienst als ausführbare Datei vorhanden MyServiceExecutable.exe ist und ausgeführt wird.

[CmdletBinding()]
param()

begin {
    $SharedParameters = @{
        Name       = 'Service'
        ModuleName = 'PSDscResource'
        Properties = @{
            Name   = 'Service1'
            Ensure = 'Present'
            Path   = 'C:\FilePath\MyServiceExecutable.exe'
        }
    }

    $NonGetProperties = @(
        'Ensure'
        'Path'
    )
}

process {
    $TestResult = Invoke-DscResource -Method Test @SharedParameters

    if ($TestResult.InDesiredState) {
        $QueryParameters = $SharedParameters.Clone()

        foreach ($Property in $NonGetProperties) {
            $QueryParameters.Properties.Remove($Property)
        }

        Invoke-DscResource -Method Get @QueryParameters
    } else {
        Invoke-DscResource -Method Set @SharedParameters
    }
}

Mit einer Konfiguration

Dieser Codeausschnitt zeigt, wie Sie einen ConfigurationService Ressourcenblock definieren können, um sicherzustellen, dass der Service1 Dienst als ausführbare Datei vorhanden MyServiceExecutable.exe ist und ausgeführt wird.

Configuration Create {
    Import-DscResource -ModuleName 'PSDscResources'

    Node localhost {
        Service ExampleService {
            Name   = 'Service1'
            Ensure = 'Present'
            Path   = 'C:\FilePath\MyServiceExecutable.exe'
        }
    }
}