Delen via


Een archief uitvouwen onder een referentie zonder bestandsvalidatie

Description

In dit voorbeeld ziet u hoe u de Archive resource kunt gebruiken om ervoor te zorgen dat een .zip bestand wordt uitgebreid naar een specifieke map onder een gekozen account. Hiermee kunt u locaties opgeven voor het archief en de bestemming waarvoor autorisatie is vereist voor toegang en schrijven.

Met Ensure ingesteld op Present, het pad ingesteld op C:\ExampleArchivePath\Archive.zipen de doel ingesteld C:\ExampleDestinationPath\Destinationop , wordt de inhoud van Archive.zip de resource uitgebreid naar de Destination map als ze er nog niet zijn.

Als de eigenschap Referentie is ingesteld op een account met machtigingen voor het Archive.zip bestand en de Destination map, wordt het .zip bestand als dat account uitgebreid. Als het account geen machtigingen heeft voor een van beide paden, genereert de resource een fout.

Zonder de eigenschappen Validate of Checksum ingesteld, controleert de resource de uitgevouwen inhoud niet met de bestanden in Archive.zip, alleen die er bestaan. De uitgevouwen inhoud in de Destination map komt mogelijk niet overeen met de inhoud in Archive.zip.

Met Invoke-DscResource

Dit script laat zien hoe u de Archive resource met de Invoke-DscResource cmdlet kunt gebruiken om ervoor te zorgen dat Archive.zip deze wordt uitgebreid naar de Destination map, met behulp van de referenties van een opgegeven account voor het lezen en schrijven van de bestanden.

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

Met een configuratie

Dit fragment laat zien hoe u een Configuration met een Archive resourceblok kunt definiƫren om ervoor te zorgen dat Archive.zip deze wordt uitgebreid naar de Destination map, met behulp van de referenties van een opgegeven account voor het lezen en schrijven van de bestanden.

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