Compartir a través de


Expansión de un archivo en una credencial 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 en una cuenta elegida. Esto le permite especificar ubicaciones para el archivo y el destino que requieren autorización para el acceso y la escritura.

Con Ensure establecido en Present, la ruta de acceso establecida C:\ExampleArchivePath\Archive.zipen y destination establecidoC:\ExampleDestinationPath\Destinationen , el recurso expande el contenido de Archive.zip a la Destination carpeta si aún no están allí.

Con la propiedad Credential establecida en una cuenta con permisos para el Archive.zip archivo y la Destination carpeta, el recurso expande el .zip archivo a medida que esa cuenta. Si la cuenta no tiene permisos para ninguna ruta de acceso, el recurso produce un error.

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 Archive.zip de que se expande a la carpeta mediante la credencial de una Destination cuenta especificada para leer y escribir los archivos.

[CmdletBinding()]
param(
    [Parameter(Mandatory)]
    [System.Management.Automation.PSCredential]
    [System.Management.Automation.Credential()]
    $Credential
)

begin {
    $SharedParameters = @{
        Name       = 'Archive'
        ModuleName = 'PSDscResource'
        Properties = @{
            Path        = 'C:\ExampleArchivePath\Archive.zip'
            Destination = 'C:\ExampleDestinationPath\Destination'
            Credential  = $Credential
            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 se puede definir un Configuration objeto con un Archive bloque de recursos para asegurarse de que Archive.zip se expande a la Destination carpeta mediante la credencial de una cuenta especificada para leer y escribir los archivos.

Configuration ExpandArchiveNoValidationCredential {
    param(
        [Parameter(Mandatory)]
        [System.Management.Automation.PSCredential]
        [System.Management.Automation.Credential()]
        $Credential
    )

    Import-DscResource -ModuleName 'PSDscResources'

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