forked from dsccommunity/xPSDesiredStateConfiguration
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathxEnvironment_RemoveMultiplePathsConfig.ps1
97 lines (82 loc) · 3.23 KB
/
xEnvironment_RemoveMultiplePathsConfig.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
96
97
<#PSScriptInfo
.VERSION 1.0.1
.GUID c24aa186-1765-4d8a-9204-14624e7b7f8a
.AUTHOR Microsoft Corporation
.COMPANYNAME Microsoft Corporation
.COPYRIGHT
.TAGS DSCConfiguration
.LICENSEURI https://github.com/dsccommunity/xPSDesiredStateConfiguration/blob/main/LICENSE
.PROJECTURI https://github.com/dsccommunity/xPSDesiredStateConfiguration
.ICONURI
.EXTERNALMODULEDEPENDENCIES
.REQUIREDSCRIPTS
.EXTERNALSCRIPTDEPENDENCIES
.RELEASENOTES First version.
.PRIVATEDATA 2016-Datacenter,2016-Datacenter-Server-Core
#>
#Requires -module 'xPSDesiredStateConfiguration'
<#
.SYNOPSIS
Configuration that modifies an environment variable containing paths.
.DESCRIPTION
Configuration that removes one or more path values, if the values exist,
from and environment variable containing paths. Other values of the
environment variable will not be modified and will be left intact.
.PARAMETER Name
The name of the environment variable to modify.
.PARAMETER Value
The paths to remove from the environment variable as a comma-separated
list, e.g. 'C:\test123;C:\test456'.
.PARAMETER Target
The scope in which to modify the environment variable. Can be set to
either the 'Machine', the 'Process' or both. Default value is 'Machine'.
{ Process | Machine }
.EXAMPLE
xEnvironment_RemoveMultiplePathsConfig -Name 'TestPath' -Value 'C:\test456;C:\test123' -Target @('Process', 'Machine')
Compiles a configuration that removes the paths 'C:\test123' and
'C:\test456', if the values exist, from the environment variable 'TestPath'
in both the scopes 'Machine' and 'Process'.
Other values of the environment variable 'TestPath' will not be modified,
and will be left intact.
.EXAMPLE
$configurationParameters = @{
Name = 'TestPath'
Value = 'C:\test456;C:\test123'
Target = @('Process', 'Machine')
}
Start-AzureRmAutomationDscCompilationJob -ResourceGroupName '<resource-group>' -AutomationAccountName '<automation-account>' -ConfigurationName 'xEnvironment_RemoveMultiplePathsConfig' -Parameters $configurationParameters
Compiles a configuration in Azure Automation that removes the paths
'C:\test123' and 'C:\test456', if the values exist, from the environment
variable 'TestPath' in both the scopes 'Machine' and 'Process'.
Other values of the environment variable 'TestPath' will not be modified,
and will be left intact.
Replace the <resource-group> and <automation-account> with correct values.
#>
Configuration xEnvironment_RemoveMultiplePathsConfig
{
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 'RemoveMultiplePaths'
{
Name = $Name
Value = $Value
Ensure = 'Absent'
Path = $true
Target = $Target
}
}
}