Sdílet prostřednictvím


Rozbalení archivu s povoleným ověřováním souborů SHA-256 a přepsáním souboru

Description

Tento příklad ukazuje, jak můžete prostředek použít Archive k zajištění .zip rozšíření souboru do konkrétního adresáře a rozbalený obsah odpovídá obsahu v .zip souboru.

Pokud je nastavená možnost Present, cesta nastavená na C:\ExampleArchivePath\Archive.zipa cíl nastavená na C:\ExampleDestinationPath\Destination, prostředek rozbalí obsah Archive.zip složkyDestination, pokud tam ještě nejsou.

Pokud je nastavenaSHA-256možnost Ověřit na $truehodnotu a Kontrolní součet , prostředek porovná kontrolní součet SHA256 všech rozbalených souborů s příslušným souborem v souboru .Archive.zip Pokud kontrolní součet pro jakýkoli rozbalený soubor neodpovídá kontrolnímu součtu daného souboru, Archive.zipprostředek je mimo požadovaný stav.

V případě vynucení nastavené na $truepřepíše prostředek všechny rozbalené soubory nesprávným kontrolním součtem. Pokud je nastavená hodnota $falseForce , prostředek vyvolá výjimku místo přepsání souborů.

S Invoke-DscResource

Tento skript ukazuje, jak pomocí Archive prostředku s rutinou Invoke-DscResource zajistit Archive.zip , že je rozbalený do složky s ověřením kontrolního Destination součtu SHA256.

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

S konfigurací

Tento fragment kódu ukazuje, jak můžete definovat ConfigurationArchive blok prostředků, abyste se ujistili Archive.zip , že je rozbalený do složky s ověřením kontrolního Destination součtu SHA256.

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