다음을 통해 공유


SHA-256 파일 유효성 검사를 사용하여 보관 파일 제거

설명

이 예제에서는 리소스를 Archive 사용하여 파일의 .zip 내용이 특정 디렉터리로 확장되지 않도록 하는 방법을 보여 줍니다.

Ensure를 설정하면 Absent경로가 로 설정됩니다C:\ExampleArchivePath\Archive.zip. 대상을 설정하면 C:\ExampleDestinationPath\Destination리소스는 폴더의 Archive.zip 내용이 있는 경우 폴더에서 Destination 해당 내용을 제거합니다.

유효성 검사를 설정하고 $true체크섬을 설정하면 SHA-256리소스는 폴더와 Archive.zip폴더에 있는 모든 항목의 SHA256 체크섬을 Destination 비교합니다. 폴더에 있는 Destination 모든 파일에 대한 체크섬이 해당 파일 Archive.zip의 체크섬과 일치하면 리소스가 원하는 상태가 됩니다. 리소스는 Set 메서드가 실행되면 일치하는 파일을 제거합니다. 다른 파일은 제거되지 않습니다.

Invoke-DscResource

이 스크립트는 cmdlet과 함께 Invoke-DscResource 리소스를 Archive 사용하여 SHA256 체크섬 유효성 검사를 통해 폴더에 Archive.zip 콘텐츠가 Destination 없는지 확인하는 방법을 보여 줍니다.

[CmdletBinding()]
param()

begin {
    $SharedParameters = @{
        Name       = 'Archive'
        ModuleName = 'PSDscResource'
        Properties = @{
            Path        = 'C:\ExampleArchivePath\Archive.zip'
            Destination = 'C:\ExampleDestinationPath\Destination'
            Validate    = $true
            Checksum    = 'SHA-256'
            Ensure      = 'Absent'
        }
    }

    $NonGetProperties = @(
        'Ensure'
        'Validate'
        'Checksum'
    )
}

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
    }
}

구성을 사용하여

이 코드 조각은 SHA256 체크섬 유효성 검사를 사용하여 폴더에 DestinationArchive.zip 콘텐츠가 없도록 리소스 블록으로 정의하는 ConfigurationArchive 방법을 보여 줍니다.

Configuration RemoveArchiveChecksum {
    Import-DscResource -ModuleName 'PSDscResources'

    Node localhost {
        Archive ExampleArchive {
            Path        = 'C:\ExampleArchivePath\Archive.zip'
            Destination = 'C:\ExampleDestinationPath\Destination'
            Validate    = $true
            Checksum    = 'SHA-256'
            Ensure      = 'Absent'
        }
    }
}