Share via


Erweitern eines Archivs mit SHA-256-Dateiüberprüfung und Dateiüberschreibung zulässig

Beschreibung

In diesem Beispiel wird gezeigt, wie Sie die Archive Ressource verwenden können, um sicherzustellen, dass eine .zip Datei auf ein bestimmtes Verzeichnis erweitert wird und der erweiterte Inhalt dem Inhalt in der .zip Datei entspricht.

Mit "Stellen Sie sicherPresent, dass der PfadC:\ExampleArchivePath\Archive.zipauf " festgelegt ist" und "ZielC:\ExampleDestinationPath\Destination" auf " festgelegt" ist, erweitert die Ressource den Inhalt Archive.zip des Destination Ordners, wenn sie noch nicht vorhanden sind.

Mit "Überprüfen$true" auf "Überprüfen" und "Prüfumen" auf SHA-256"Überprüfen" wird die Sha256-Prüfsumme jeder erweiterten Datei mit der relevanten Datei Archive.zipverglichen. Wenn die Prüfsumme für eine erweiterte Datei nicht mit der Prüfsumme dieser Datei Archive.zipübereinstimmt, ist die Ressource außerhalb des gewünschten Zustands.

Wenn die Ressource auf $true"Force" festgelegt ist, überschreibt die Ressource alle erweiterten Dateien mit einer falschen Prüfsumme. Wenn Force auf $false"Force" festgelegt wurde, würde die Ressource eine Ausnahme auslösen, anstatt die Dateien zu überschreiben.

Mit Invoke-DscResource

Dieses Skript zeigt, wie Sie die Archive Ressource mit dem Invoke-DscResource Cmdlet verwenden können, um sicherzustellen Archive.zip , dass er auf den Ordner mit der Destination ÜBERPRÜFUNG der SHA256-Prüfsumme erweitert wird.

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

Mit einer Konfiguration

In diesem Codeausschnitt wird gezeigt, wie Sie einen ArchiveConfiguration Ressourcenblock definieren können, um sicherzustellenArchive.zip, dass er auf den Ordner mit DER Destination SHA256-Prüfsummenüberprüfung erweitert wird.

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