Share via


Erweitern eines Archivs unter anmeldeinformationen ohne Dateiüberprüfung

Beschreibung

In diesem Beispiel wird gezeigt, wie Sie die Archive Ressource verwenden können, um sicherzustellen, dass eine .zip Datei auf ein bestimmtes Verzeichnis unter einem ausgewählten Konto erweitert wird. Auf diese Weise können Sie Speicherorte für das Archiv und das Ziel angeben, die eine Autorisierung für Den Zugriff und das Schreiben erfordern.

Mit "Stellen Sie sicher, Presentdass "Pfad" auf " festgelegt ist" und auf "Ziel" festgelegt C:\ExampleDestinationPath\DestinationC:\ExampleArchivePath\Archive.zipist, erweitert die Ressource den Inhalt Archive.zip des Destination Ordners, wenn sie noch nicht vorhanden sind.

Wenn die Credential-Eigenschaft auf ein Konto mit Berechtigungen für die Archive.zip Datei und den Destination Ordner festgelegt ist, erweitert die Ressource die .zip Datei als dieses Konto. Wenn das Konto keine Berechtigungen für einen anderen Pfad hat, löst die Ressource einen Fehler aus.

Ohne die Eigenschaften "Validieren " oder " Prüfsummen " überprüft die Ressource nicht den erweiterten Inhalt mit den Dateien in Archive.zip, nur dass sie vorhanden sind. Der erweiterte Inhalt im Destination Ordner entspricht möglicherweise nicht dem Inhalt in Archive.zip.

Mit Invoke-DscResource

Dieses Skript zeigt, wie Sie die Archive Ressource mit dem Invoke-DscResource Cmdlet verwenden können, um sicherzustellen Archive.zip , dass sie auf den Destination Ordner erweitert wird, indem Sie die Anmeldeinformationen eines angegebenen Kontos zum Lesen und Schreiben der Dateien verwenden.

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

Mit einer Konfiguration

Dieser Codeausschnitt zeigt, wie Sie einen ConfigurationArchive Ressourcenblock definieren können, um Archive.zip sicherzustellen, dass er auf den Destination Ordner erweitert wird, indem Sie die Anmeldeinformationen eines angegebenen Kontos zum Lesen und Schreiben der Dateien verwenden.

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