Compartir a través de


Eliminación de un archivo con validación de archivos SHA-256

Descripción

En este ejemplo se muestra cómo puede usar el Archive recurso para asegurarse de que ningún contenido de un .zip archivo se expanda a un directorio específico.

Con Asegurar establecido en Absent, la ruta de acceso establecida en C:\ExampleArchivePath\Archive.zip. y destination establecido en C:\ExampleDestinationPath\Destination, el recurso quita el contenido de de Archive.zip la Destination carpeta si existen.

Con Validate establecido en $true y Checksum establecido SHA-256en , el recurso compara la suma de comprobación SHA256 de cada que existe tanto en la Destination carpeta Archive.zipcomo en . Si la suma de comprobación de cualquier archivo de la Destination carpeta coincide con la suma de comprobación de ese archivo en Archive.zip, el recurso está fuera del estado deseado. El recurso quita esos archivos coincidentes cuando se ejecuta su método Set . No quitará ningún otro archivo.

Con Invoke-DscResource

Este script muestra cómo puede usar el Archive recurso con el Invoke-DscResource cmdlet para asegurarse de que no existe ningún contenido en Archive.zip la Destination carpeta con validación de suma de comprobación SHA256.

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

Con una configuración

Este fragmento de código muestra cómo se puede definir un Configuration objeto con un Archive bloque de recursos para asegurarse de que no existe ningún contenido en Archive.zip la Destination carpeta con validación de suma de comprobación SHA256.

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