Examples/xEnvironment_RemoveVariableConfig.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<#PSScriptInfo
.VERSION 1.0.1
.GUID 845b267f-e47e-4305-88b6-d1086e6c1405
.AUTHOR Microsoft Corporation
.COMPANYNAME Microsoft Corporation
.COPYRIGHT
.TAGS DSCConfiguration
.LICENSEURI https://github.com/PowerShell/xPSDesiredStateConfiguration/blob/master/LICENSE
.PROJECTURI https://github.com/PowerShell/xPSDesiredStateConfiguration
.ICONURI
.EXTERNALMODULEDEPENDENCIES
.REQUIREDSCRIPTS
.EXTERNALSCRIPTDEPENDENCIES
.RELEASENOTES First version.
.PRIVATEDATA 2016-Datacenter,2016-Datacenter-Server-Core
#>


#Requires -module @{ModuleName = 'xPSDesiredStateConfiguration';ModuleVersion = '8.2.0.0'}

<#
    .SYNOPSIS
        Configuration that removes an environment variable.
 
    .DESCRIPTION
        Configuration that removes an environment variable.
 
    .PARAMETER Name
        The name of the environment variable to remove.
 
    .PARAMETER Target
        The scope in which to remove the environment variable. Can be set to
        either the 'Machine', the 'Process' or both. Default value is 'Machine'.
        { Process | Machine }
 
    .EXAMPLE
        xEnvironment_RemoveVariableConfig -Name 'TestVariable' -Target @('Process', 'Machine')
 
        Compiles a configuration that removes the environment variable
        'TestVariable' from both the machine and the process scope.
 
    .EXAMPLE
        $configurationParameters = @{
            Name = 'TestVariable'
            Target = @('Process', 'Machine')
        }
        Start-AzureRmAutomationDscCompilationJob -ResourceGroupName '<resource-group>' -AutomationAccountName '<automation-account>' -ConfigurationName 'xEnvironment_RemoveVariableConfig' -Parameters $configurationParameters
 
        Compiles a configuration in Azure Automation that removes the environment
        variable 'TestVariable' from both the machine and the process scope.
 
        Replace the <resource-group> and <automation-account> with correct values.
#>

Configuration xEnvironment_RemoveVariableConfig
{
    param
    (
        [Parameter(Mandatory = $true)]
        [System.String]
        $Name,

        [Parameter()]
        [ValidateSet('Process', 'Machine')]
        [System.String[]]
        $Target = 'Machine'
    )

    Import-DscResource -ModuleName 'xPSDesiredStateConfiguration'

    Node localhost
    {
        xEnvironment 'NewVariable'
        {
            Name   = $Name
            Ensure = 'Absent'
            Path   = $false
            Target = $Target
        }
    }
}