Share via


Entfernen eines Archivs mit SHA-256-Dateiüberprüfung

Beschreibung

In diesem Beispiel wird gezeigt, wie Sie die Archive Ressource verwenden können, um sicherzustellen, dass keine Inhalte einer .zip Datei auf ein bestimmtes Verzeichnis erweitert werden.

Stellen Sie sicher, dass "Pfad" auf C:\ExampleArchivePath\Archive.zipAbsent" festgelegt ist. und der Zielsatz auf C:\ExampleDestinationPath\Destination, die Ressource entfernt den Inhalt des Archive.zipDestination Ordners, sofern vorhanden.

Mit "Validate " auf "Überprüfen" $true und " Prüfsumme " auf SHA-256"Überprüfen" wird die SHA256-Prüfsumme jeder, die sowohl im Ordner als auch Destination im Ordner Archive.zipvorhanden ist, verglichen. Wenn die Prüfsumme für eine Datei im Destination Ordner mit der Prüfsumme dieser Datei übereinstimmt Archive.zip, ist die Ressource außerhalb des gewünschten Zustands. Die Ressource entfernt diese übereinstimmenden Dateien, wenn die Set-Methode ausgeführt wird. Es werden keine anderen Dateien entfernt.

Mit Invoke-DscResource

Dieses Skript zeigt, wie Sie die Archive Ressource mit dem Invoke-DscResource Cmdlet verwenden können, um sicherzustellen, dass keine Inhalte Archive.zip im Destination Ordner mit SHA256-Prüfsummenüberprüfung vorhanden sind.

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

Mit einer Konfiguration

Dieser Codeausschnitt zeigt, wie Sie einen ConfigurationArchive Ressourcenblock definieren können, um sicherzustellen, dass keine Inhalte Archive.zip im Destination Ordner mit SHA256-Prüfsummenüberprüfung vorhanden sind.

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