Share via


Créer une variable d’environnement non-path

Description

Cet exemple montre comment utiliser la Environment ressource pour vous assurer qu’une variable d’environnement non-path existe avec une valeur spécifique.

Avec Ensure défini Presentsur , Nom défini TestEnvironmentVariablesur et Valeur défini TestValuesur , la ressource ajoute une variable d’environnement appelée TestEnvironmentVariable avec la valeur TestValue s’il n’existe pas.

Avec le chemin d’accès défini sur $false, s’il TestEnvironmentVariable existe une valeur autre que TestValue, la ressource la définit exactement TestValuesur .

Avec la valeur Target définie sur un tableau avec les deux Process et Machine, la ressource crée ou définit la variable d’environnement dans les cibles de processus et de machine.

Avec Invoke-DscResource

Ce script montre comment utiliser la Environment ressource avec l’applet Invoke-DscResource de commande pour vous assurer TestEnvironmentVariable qu’elle est définie dans le processus et les cibles de l’ordinateur en tant que TestValue.

[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
    }
}

Avec une configuration

Cet extrait de code montre comment définir un Configuration bloc Environment de ressources pour vous assurer TestEnvironmentVariable qu’il est défini dans le processus et les cibles de l’ordinateur en tant que TestValue.

Configuration CreateNonPathVariable  {
    Import-DscResource -ModuleName 'PSDscResources'

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