Share via


Eliminación de una variable de entorno

Descripción

En este ejemplo se muestra cómo puede usar el Environment recurso para asegurarse de que no existe una variable de entorno que no sea de ruta de acceso.

Con Garantizar establecido en Absent, Nombre establecido en TestEnvironmentVariabley Ruta de acceso establecida en $false, el recurso quita la variable de entorno denominada TestEnvironmentVariable si existe.

Con Target establecido en una matriz con Process y Machine, el recurso quita la variable de entorno de 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 TestEnvironmentVariable de que se quita del proceso y los destinos de la máquina.

<#
.SYNOPSIS
.DESCRIPTION
    Removes the environment variable `TestEnvironmentVariable` from both the
    machine and the process.
#>

[CmdletBinding()]
param()

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

    $NonGetProperties = @(
        '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 TestEnvironmentVariable de que se quita del proceso y los destinos de la máquina.

<#
.SYNOPSIS
.DESCRIPTION
    Removes the environment variable `TestEnvironmentVariable` from both the
    machine and the process.
#>

configuration Sample_Environment_Remove {
    Import-DscResource -ModuleName 'PSDscResources'

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