Examples/xEnvironment_CreateNonPathVariableConfig.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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<#PSScriptInfo
.VERSION 1.0.1
.GUID ee586cfa-237c-4e5f-929e-9b420afabc91
.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 creates or modifies an environment variable.
 
    .DESCRIPTION
        Configuration that creates or modifies an environment variable.
        If the environment variable does not exist, the environment variable is
        created, and the value will be added.
        If the environment variable already exist, and the value differs, then
        the value will be changed.
 
    .PARAMETER Name
        The name of the environment variable to create or modify.
 
    .PARAMETER Value
        The value to set on the environment variable.
 
    .PARAMETER Target
        The scope to set the environment variable. Can be set to either the
        'Machine', the 'Process' or both. Default value is 'Machine'.
        { Process | Machine }
 
    .EXAMPLE
        xEnvironment_CreateNonPathVariableConfig -Name 'TestVariable' -Value 'TestValue' -Target @('Process', 'Machine')
 
        Compiles a configuration that creates the environment variable
        'TestVariable' and sets the value to 'TestValue' both on the machine
        scope and within the process scope.
 
    .EXAMPLE
        $configurationParameters = @{
            Name = 'TestVariable'
            Value = 'TestValue'
            Target = @('Process', 'Machine')
        }
        Start-AzureRmAutomationDscCompilationJob -ResourceGroupName '<resource-group>' -AutomationAccountName '<automation-account>' -ConfigurationName 'xEnvironment_CreateNonPathVariableConfig' -Parameters $configurationParameters
 
        Compiles a configuration in Azure Automation that creates the environment
        variable 'TestVariable' and sets the value to 'TestValue' both on the
        machine scope and within the process scope.
 
        Replace the <resource-group> and <automation-account> with correct values.
#>

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

        [Parameter(Mandatory = $true)]
        [System.String]
        $Value,

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

    Import-DscResource -ModuleName 'xPSDesiredStateConfiguration'

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