Bagikan melalui


Perluas arsip dengan validasi file SHA-256 dan timpa file yang diizinkan

Deskripsi

Contoh ini menunjukkan bagaimana Anda dapat menggunakan Archive sumber daya untuk memastikan .zip file diperluas ke direktori tertentu dan konten yang diperluas cocok dengan konten dalam .zip file.

Dengan Pastikan diatur ke Present, Jalur diatur ke C:\ExampleArchivePath\Archive.zip, dan Tujuan diatur ke C:\ExampleDestinationPath\Destination, sumber daya memperluas konten Archive.zip ke Destination folder jika belum ada.

Dengan Validasi diatur ke $true dan Checksum diatur ke SHA-256, sumber daya membandingkan checksum SHA256 dari setiap file yang diperluas terhadap file yang relevan di Archive.zip. Jika checksum untuk file yang diperluas tidak cocok dengan checksum file tersebut di , sumber daya berada di Archive.zipluar status yang diinginkan.

Dengan Force diatur ke $true, sumber daya menimpa file yang diperluas dengan checksum yang salah. Jika Force diatur ke $false, sumber daya akan melemparkan pengecualian alih-alih menimpa file.

Dengan Invoke-DscResource

Skrip ini menunjukkan bagaimana Anda dapat menggunakan Archive sumber daya dengan Invoke-DscResource cmdlet untuk memastikan Archive.zip diperluas ke Destination folder dengan validasi checksum SHA256.

[CmdletBinding()]
param()

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

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

Dengan Konfigurasi

Cuplikan ini menunjukkan bagaimana Anda dapat menentukan Configuration dengan Archive blok sumber daya untuk memastikan Archive.zip diperluas ke Destination folder dengan validasi checksum SHA256.

Configuration ExpandArchiveDefaultValidationAndForce {
    Import-DscResource -ModuleName 'PSDscResources'

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