Expandir um arquivo em uma credencial sem validação de arquivo

Descrição

Este exemplo mostra como você pode usar o Archive recurso para garantir que um .zip arquivo seja expandido para um diretório específico em uma conta escolhida. Isso permite que você especifique locais para o arquivo e destino que exigem autorização para acesso e gravação.

Com Ensure definido como Present, o caminho definido como C:\ExampleArchivePath\Archive.zip, e o destino definido como C:\ExampleDestinationPath\Destination, o recurso expande o conteúdo da Archive.zipDestination pasta se eles ainda não estiverem lá.

Com a propriedade Credential definida como uma conta com permissões para o Archive.zip arquivo e a Destination pasta, o recurso expande o .zip arquivo como essa conta. Se a conta não tiver permissões para nenhum dos caminhos, o recurso gerará um erro.

Sem as propriedades Validate ou Checksum definidas, o recurso não verifica o conteúdo expandido com os arquivos, Archive.zipapenas se eles existem. O conteúdo expandido na Destination pasta pode não corresponder ao conteúdo em Archive.zip.

Com Invoke-DscResource

Este script mostra como você pode usar o Archive recurso com o Invoke-DscResource cmdlet para garantir Archive.zip que seja expandido para a Destination pasta, usando a credencial de uma conta especificada para ler e gravar os arquivos.

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

Com uma configuração

Este snippet mostra como você pode definir um com um ConfigurationArchive bloco de recursos para garantir Archive.zip que seja expandido para a Destination pasta, usando a credencial de uma conta especificada para ler e gravar os arquivos.

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