Share via


Crear o actualizar una variable de entorno de ruta de acceso

Descripción

En este ejemplo se muestra cómo puede usar el Environment recurso para asegurarse de que existe una variable de entorno de ruta de acceso con un valor específico.

Con Asegurar establecido en Present, Nombre establecido TestEnvironmentVariableen y Valor establecido TestValueen , el recurso agrega una variable de entorno denominada TestEnvironmentVariable con el valor TestValue si no existe.

Con Path establecido $trueen , si TestEnvironmentVariable existe y no incluye TestValue, el recurso se anexa TestValue al valor actual.

Con Target establecido en una matriz con Process y Machine, el recurso crea o establece la variable de entorno en los destinos de proceso y máquina.

Con Invoke-DscResource

Este script muestra cómo puede usar el Environment recurso con el Invoke-DscResource cmdlet para asegurarse de que TestEnvironmentVariable está establecido en el proceso y los destinos de la máquina para incluir TestValue.

[CmdletBinding()]
param()

begin {
    $SharedParameters = @{
        Name       = 'Environment'
        ModuleName = 'PSDscResource'
        Properties = @{
            Name   = 'TestPathEnvironmentVariable'
            Value  = 'TestValue'
            Ensure = 'Present'
            Path   = $true
            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
    }
}

Con una configuración

Este fragmento de código muestra cómo puede definir un Configuration con un Environment bloque de recursos para asegurarse de que TestEnvironmentVariable está establecido en el proceso y los destinos de la máquina para incluir TestValue.

Configuration CreatePathVariable  {
    Import-DscResource -ModuleName 'PSDscResources'

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