Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Description
This example shows how you can use the Environment resource to ensure a non-path environment
variable doesn't exist.
With Ensure set to Absent, Name set to TestEnvironmentVariable, and Path set to
$false, the resource removes the environment variable called TestEnvironmentVariable if it
exists.
With Target set to an array with both Process and Machine, the resource removes the
environment variable from both the process and machine targets.
With Invoke-DscResource
This script shows how you can use the Environment resource with the Invoke-DscResource cmdlet to
ensure TestEnvironmentVariable is removed from the process and machine targets.
<#
.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
}
}
With a Configuration
This snippet shows how you can define a Configuration with an Environment resource block to
ensure TestEnvironmentVariable is removed from the process and machine targets.
<#
.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'
)
}
}
}