Dela via


Expandera ett arkiv under en autentiseringsuppgift utan filverifiering

Description

Det här exemplet visar hur du kan använda resursen Archive för att säkerställa att en .zip fil expanderas till en specifik katalog under ett valt konto. På så sätt kan du ange platser för arkivet och målet som kräver auktorisering för åtkomst och skrivning.

Med Se till inställt på Present, är sökvägen inställd på C:\ExampleArchivePath\Archive.zipoch Mål inställd C:\ExampleDestinationPath\Destinationpå expanderar resursen innehållet i Archive.zip till Destination mappen om de inte redan finns där.

Med egenskapen Credential inställd på ett konto med behörighet till Archive.zip filen och Destination mappen expanderar resursen .zip filen som det kontot. Om kontot inte har behörighet till någon av sökvägarna utlöser resursen ett fel.

Utan egenskaperna Verifiera eller Kontrollerasumma verifierar resursen inte det expanderade innehållet med filerna i Archive.zip, bara att de finns. Det expanderade innehållet i Destination mappen kanske inte matchar innehållet i Archive.zip.

Med Invoke-DscResource

Det här skriptet visar hur du kan använda resursen Archive med cmdleten Invoke-DscResource för att säkerställa Archive.zip att den Destination expanderas till mappen med hjälp av ett angivet kontos autentiseringsuppgifter för att läsa och skriva filerna.

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

Med en konfiguration

Det här kodfragmentet visar hur du kan definiera ett Configuration med ett Archive resursblock för att säkerställa Archive.zip att expanderas till Destination mappen med hjälp av ett angivet kontos autentiseringsuppgifter för att läsa och skriva filerna.

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