Aracılığıyla paylaş


Dosya doğrulaması olmadan bir kimlik bilgisi altındaki arşivi genişletme

Description

Bu örnekte, bir dosyanın seçilen hesap altında belirli bir .zip dizine genişletildiğinden emin olmak için kaynağı nasıl kullanabileceğiniz Archive gösterilmektedir. Bu, arşiv ve hedef için erişim ve yazma için yetkilendirme gerektiren konumlar belirtmenize olanak tanır.

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.

Credential özelliği dosya ve Destination klasör izinleri Archive.zip olan bir hesaba ayarlandığında, kaynak dosyayı bu hesap olarak genişletir.zip. Hesabın iki yol için de izinleri yoksa, kaynak bir hata oluşturur.

Validate veya Checksum özellikleri ayarlanmadan, kaynak genişletilmiş içeriği içindeki Archive.zipdosyalarla doğrulamaz ve yalnızca var olduklarını doğrular. Klasördeki Destination genişletilmiş içerik içindeki içerikle Archive.zipeşleşmeyebilir.

Invoke-DscResource ile

Bu betik, dosyaları okumak ve yazmak için belirtilen hesabın ArchiveInvoke-DscResource kimlik bilgilerini kullanarak klasörüne genişletildiğinden Destination emin olmak Archive.zip için cmdlet'i ile kaynağı nasıl kullanabileceğinizi gösterir.

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

Yapılandırma ile

Bu kod parçacığı, belirli bir Archive hesabın dosyaları okumak ve yazmak için kimlik bilgilerini kullanarak klasöre genişletildiğinden Destination emin olmak Archive.zip için kaynak bloğuyla nasıl tanımlayabileceğinizi Configuration gösterir.

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