Aracılığıyla paylaş


Varsayılan dosya doğrulama ve dosya üzerine yazma izin verilen bir arşivi genişletme

Description

Bu örnekte, bir dosyanın belirli bir .zip dizine genişletildiğinden Archive ve genişletilmiş içeriğin dosyadaki .zip içerikle eşleştiğinden emin olmak için kaynağı nasıl kullanabileceğiniz gösterilmektedir.

Emin olun olarak ayarlandığındaPresent, Yol olarak ayarlanır C:\ExampleArchivePath\Archive.zipve Hedef olarak ayarlanırC:\ExampleDestinationPath\Destination. Kaynak, içeriği henüz orada değilse klasörünün Destination içeriğini Archive.zip genişletir.

Validate ayarı ve $trueSağlama Toplamı ayarlanmadığından, kaynak genişletilmiş her dosyanın LastWriteTime özelliğini içindeki Archive.zipilgili dosyanın LastWriteTime özelliğiyle karşılaştırır. Klasördeki Destination herhangi bir içeriğin değerleri içindeki Archive.zipdeğerle eşleşmiyorsa, kaynak istenen durumun dışındadır.

Zorla olarak ayarlandığında$true, kaynak genişletilmiş dosyaların üzerine yanlış LastWriteTime yazar. Zorla olarak ayarlandıysa$false, kaynak dosyaların üzerine yazmak yerine bir özel durum oluşturur.

Invoke-DscResource ile

Bu betik, varsayılan doğrulama ile klasörüne genişletildiğinden Invoke-DscResourceDestination emin olmak Archive.zip için cmdlet'i ile kaynağı 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
            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
    }
}

Yapılandırma ile

Bu kod parçacığı, varsayılan doğrulama ile klasörüne genişletildiğinden emin olmak Archive.zip için kaynak Archive bloğuyla nasıl bir tanımlayabileceğinizi ConfigurationDestination gösterir.

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