Dela via


Expandera ett arkiv med SHA-256-filverifiering och filöverskrivning tillåten

Description

Det här exemplet visar hur du kan använda resursen Archive för att säkerställa att en .zip fil expanderas till en specifik katalog och att det expanderade innehållet matchar innehållet i .zip filen.

Med Se till inställt på Present, anger sökvägen till C:\ExampleArchivePath\Archive.zipoch Målet har angetts till C:\ExampleDestinationPath\Destinationexpanderar resursen innehållet i Archive.zip till Destination mappen om de inte redan finns där.

Med Validate inställt på $true och Checksum inställt på SHA-256jämför resursen SHA256-kontrollsumman för varje expanderad fil med den relevanta filen i Archive.zip. Om kontrollsumman för en expanderad fil inte matchar kontrollsumman för filen i Archive.zipär resursen inte i önskat tillstånd.

Med Force inställt på $trueskriver resursen över alla expanderade filer med en felaktig kontrollsumma. Om Force hade angetts till $falseskulle resursen utlösa ett undantag i stället för att skriva över filerna.

Med Invoke-DscResource

Det här skriptet visar hur du kan använda resursen Archive med cmdleten Invoke-DscResource för att säkerställa Archive.zip att expanderas till Destination mappen med SHA256-kontrollsummaverifiering.

[CmdletBinding()]
param()

begin {
    $SharedParameters = @{
        Name       = 'Archive'
        ModuleName = 'PSDscResource'
        Properties = @{
            Path        = 'C:\ExampleArchivePath\Archive.zip'
            Destination = 'C:\ExampleDestinationPath\Destination'
            Validate    = $true
            Force       = $true
            Ensure      = 'Present'
        }
    }

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

Med en konfiguration

Det här kodfragmentet visar hur du kan definiera en Configuration med ett Archive resursblock för att säkerställa Archive.zip att expanderas till Destination mappen med SHA256-kontrollsummaverifiering.

Configuration ExpandArchiveDefaultValidationAndForce {
    Import-DscResource -ModuleName 'PSDscResources'

    Node localhost {
        Archive ExampleArchive {
            Path        = 'C:\ExampleArchivePath\Archive.zip'
            Destination = 'C:\ExampleDestinationPath\Destination'
            Validate    = $true
            Force       = $true
            Ensure      = 'Present'
        }
    }
}