Delen via


Een archief verwijderen met SHA-256-bestandsvalidatie

Description

In dit voorbeeld ziet u hoe u de Archive resource kunt gebruiken om ervoor te zorgen dat er geen inhoud van een .zip bestand wordt uitgebreid naar een specifieke map.

Met Ensure ingesteld op Absent, het pad ingesteld op C:\ExampleArchivePath\Archive.zip. en de bestemming ingesteld op C:\ExampleDestinationPath\Destination, de resource verwijdert de inhoud van Archive.zip de Destination map als deze bestaat.

Als de validatie is ingesteld op $true en Checksum is ingesteld SHA-256op, vergelijkt de resource de SHA256-controlesom van elke die bestaat in zowel de Destination map als Archive.zip. Als de controlesom voor een bestand in de Destination map overeenkomt met de controlesom van dat bestand, Archive.zipheeft de resource de gewenste status. De resource verwijdert deze overeenkomende bestanden wanneer de setmethode wordt uitgevoerd. Er worden geen andere bestanden verwijderd.

Met Invoke-DscResource

Dit script laat zien hoe u de Archive resource met de Invoke-DscResource cmdlet kunt gebruiken om ervoor te zorgen dat er geen inhoud in Archive.zip de Destination map bestaat met SHA256-controlesomvalidatie.

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

Met een configuratie

Dit fragment laat zien hoe u een Configuration met een Archive resourceblok kunt definiƫren om ervoor te zorgen dat er geen inhoud in Archive.zip de Destination map bestaat met SHA256-controlesomvalidatie.

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