Condividi tramite


Rimuovere una variabile di ambiente

Descrizione

In questo esempio viene illustrato come usare la Environment risorsa per assicurarsi che non esista una variabile di ambiente non percorso.

Con Verifica impostato su , Nome impostato su TestEnvironmentVariableAbsente Percorso impostato su $false, la risorsa rimuove la variabile di ambiente denominata TestEnvironmentVariable se esiste.

Con Target impostato su una matrice con Process e , Machinela risorsa rimuove la variabile di ambiente dalle destinazioni del processo e del computer.

Con Invoke-DscResource

Questo script illustra come usare la risorsa con il EnvironmentInvoke-DscResource cmdlet per assicurarsi TestEnvironmentVariable che venga rimosso dalle destinazioni del processo e del computer.

<#
.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 configurazione

Questo frammento di codice illustra come definire un Configuration oggetto con un Environment blocco di risorse per assicurarsi TestEnvironmentVariable che venga rimosso dalle destinazioni del processo e del computer.

<#
.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'
            )
        }
    }
}