Aracılığıyla paylaş


SHA-256 dosya doğrulamasıyla arşivi kaldırma

Description

Bu örnekte, bir dosyanın içeriğinin Archive belirli bir .zip dizine genişletilmemiş olduğundan emin olmak için kaynağı nasıl kullanabileceğiniz gösterilmektedir.

Emin olun olarak ayarlandığında AbsentYol olarak ayarlanırC:\ExampleArchivePath\Archive.zip. ve Hedef olarak ayarlanırsa C:\ExampleDestinationPath\Destination, kaynak klasördeki içeriğini Archive.zipDestination (varsa) kaldırır.

Doğrula ayarı $true ve Sağlama Toplamı olarak ayarlandığındaSHA-256, kaynak hem klasöründe Archive.ziphem de içinde bulunan her birinin SHA256 sağlama toplamını Destination karşılaştırır. Klasördeki herhangi bir dosyanın sağlama toplamı içindeki Destination bu dosyanın Archive.zipsağlama toplamıyla eşleşiyorsa, kaynak istenen durumun dışındadır. Kaynak, Set yöntemi çalıştırıldığında bu eşleşen dosyaları kaldırır. Diğer dosyaları kaldırmaz.

Invoke-DscResource ile

Bu betik, SHA256 sağlama toplamı doğrulaması olan klasörde içerik olmadığından emin olmak için cmdlet'iyle Archive.zipDestination kaynağı Invoke-DscResource nasıl kullanabileceğinizi Archive gösterir.

[CmdletBinding()]
param()

begin {
    $SharedParameters = @{
        Name       = 'Archive'
        ModuleName = 'PSDscResource'
        Properties = @{
            Path        = 'C:\ExampleArchivePath\Archive.zip'
            Destination = 'C:\ExampleDestinationPath\Destination'
            Validate    = $true
            Checksum    = 'SHA-256'
            Ensure      = 'Absent'
        }
    }

    $NonGetProperties = @(
        'Ensure'
        'Validate'
        'Checksum'
    )
}

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

Yapılandırma ile

Bu kod parçacığı, SHA256 sağlama toplamı doğrulaması olan klasörde içerik Archive.zipDestination olmadığından emin olmak için kaynak Archive bloğuyla nasıl tanımlayabileceğinizi Configuration gösterir.

Configuration RemoveArchiveChecksum {
    Import-DscResource -ModuleName 'PSDscResources'

    Node localhost {
        Archive ExampleArchive {
            Path        = 'C:\ExampleArchivePath\Archive.zip'
            Destination = 'C:\ExampleDestinationPath\Destination'
            Validate    = $true
            Checksum    = 'SHA-256'
            Ensure      = 'Absent'
        }
    }
}