다음을 통해 공유


경로가 아닌 환경 변수 만들기

설명

이 예제에서는 리소스를 Environment 사용하여 경로가 아닌 환경 변수가 특정 값으로 존재하는지 확인하는 방법을 보여 줍니다.

EnsurePresent로 설정하고 이름을 설정하고 TestEnvironmentVariable값을 설정하면 TestValue리소스가 존재하지 않는 경우 값 TestValue 으로 호출된 TestEnvironmentVariable 환경 변수를 추가합니다.

경로$false설정된 경우, 값이 아닌 TestValue다른 값이 있는 경우 TestEnvironmentVariable 리소스는 경로를 정확하게 TestValue설정합니다.

대상을 둘 다 ProcessMachine사용하는 배열로 설정하면 리소스는 프로세스 및 컴퓨터 대상 모두에서 환경 변수를 만들거나 설정합니다.

Invoke-DscResource

이 스크립트는 cmdlet과 함께 리소스를 EnvironmentInvoke-DscResource 사용하여 프로세스 및 컴퓨터 대상에서 로 TestValue설정되었는지 확인하는 TestEnvironmentVariable 방법을 보여 줍니다.

[CmdletBinding()]
param()

begin {
    $SharedParameters = @{
        Name       = 'Environment'
        ModuleName = 'PSDscResource'
        Properties = @{
            Name   = 'TestEnvironmentVariable'
            Value  = 'TestValue'
            Ensure = 'Present'
            Path   = $false
            Target = @(
                'Process'
                'Machine'
            )
        }
    }

    $NonGetProperties = @(
        'Value'
        '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
    }
}

구성을 사용하여

이 코드 조각에서는 리소스 블록을 사용하여 정의 ConfigurationEnvironment 하여 프로세스 및 컴퓨터 대상에서 설정되었는지 확인하는 TestEnvironmentVariable 방법을 보여 줍니다 TestValue.

Configuration CreateNonPathVariable  {
    Import-DscResource -ModuleName 'PSDscResources'

    Node localhost {
        Environment ExampleEnvironment {
            Name   = 'TestEnvironmentVariable'
            Value  = 'TestValue'
            Ensure = 'Present'
            Path   = $false
            Target = @(
                'Process'
                'Machine'
            )
        }
    }
}