Compartir a través de


Expansión de un archivo sin validación de archivos

Descripción

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

Con Asegurar establecido en Present, la ruta de acceso establecida en C:\ExampleArchivePath\Archive.zipy el valor de Destino establecido C:\ExampleDestinationPath\Destinationen , el recurso expande el contenido de Archive.zip a la Destination carpeta si aún no están allí.

Sin las propiedades Validate o Checksum establecidas, el recurso no comprueba el contenido expandido con los archivos de Archive.zip, solo que existen. Es posible que el contenido expandido de la Destination carpeta no coincida con el contenido de Archive.zip.

Con Invoke-DscResource

Este script muestra cómo puede usar el Archive recurso con el Invoke-DscResource cmdlet para asegurarse de que Archive.zip se expande a la Destination carpeta.

[CmdletBinding()]
param()

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

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

Con una configuración

Este fragmento de código muestra cómo puede definir un Configuration con un Archive bloque de recursos para asegurarse de que Archive.zip se expande a la Destination carpeta.

Configuration ExpandArchiveNoValidation {
    Import-DscResource -ModuleName 'PSDscResources'

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