Share via


Creación de una variable de entorno que no sea 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 que no es de ruta de acceso con un valor específico.

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

Con Path establecido en $false, si TestEnvironmentVariable existe con cualquier valor distinto TestValuede , el recurso lo establece en exactamente TestValue.

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 los destinos de proceso y máquina como 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
    }
}

Con una configuración

En este fragmento de código se muestra cómo se puede definir un Configuration objeto con un Environment bloque de recursos para asegurarse de que TestEnvironmentVariable está establecido en los destinos de proceso y máquina como TestValue.

Configuration CreateNonPathVariable  {
    Import-DscResource -ModuleName 'PSDscResources'

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