Share via


Erstellen einer Nichtpfadumgebungsvariable

Beschreibung

In diesem Beispiel wird gezeigt, wie Sie die Environment Ressource verwenden können, um sicherzustellen, dass eine Nichtpfadumgebungsvariable mit einem bestimmten Wert vorhanden ist.

Mit "Sicherstellen" auf Present"Name"TestEnvironmentVariable, "Auf" und "Wert" festgelegtTestValue, fügt die Ressource eine Umgebungsvariable hinzu, die mit dem Wert TestValue aufgerufen TestEnvironmentVariable wird, wenn sie nicht vorhanden ist.

Wenn path set to $false, if TestEnvironmentVariable exists with any value other than TestValue, the resource sets it to genau TestValue.

Mit Target set to an array with Process both and Machine, the resource creates or sets the environment variable in the process and machine target.

Mit Invoke-DscResource

Dieses Skript zeigt, wie Sie die Environment Ressource mit dem Invoke-DscResource Cmdlet verwenden können, um sicherzustellen TestEnvironmentVariable , dass sie im Prozess- und Computerziel TestValueals festgelegt ist.

[CmdletBinding()]
param()

begin {
    $SharedParameters = @{
        Name       = 'Environment'
        ModuleName = 'PSDscResource'
        Properties = @{
            Name   = 'TestEnvironmentVariable'
            Value  = 'TestValue'
            Ensure = 'Present'
            Path   = $false
            Target = @(
                'Process'
                'Machine'
            )
        }
    }

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

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

In diesem Codeausschnitt wird gezeigt, wie Sie einen EnvironmentConfiguration Ressourcenblock definieren können, um sicherzustellenTestEnvironmentVariable, dass der Prozess und die Computerziele als TestValuefestgelegt sind.

Configuration CreateNonPathVariable  {
    Import-DscResource -ModuleName 'PSDscResources'

    Node localhost {
        Environment ExampleEnvironment {
            Name   = 'TestEnvironmentVariable'
            Value  = 'TestValue'
            Ensure = 'Present'
            Path   = $false
            Target = @(
                'Process'
                'Machine'
            )
        }
    }
}