Een archief uitbreiden met SHA-256-bestandsvalidatie en toegestaan bestand overschrijven
Description
In dit voorbeeld ziet u hoe u de Archive
resource kunt gebruiken om ervoor te zorgen dat een .zip
bestand wordt uitgebreid naar een specifieke map en dat de uitgebreide inhoud overeenkomt met de inhoud in het .zip
bestand.
Met Ensure ingesteld op Present
, het pad ingesteld op C:\ExampleArchivePath\Archive.zip
, en de bestemming ingesteld C:\ExampleDestinationPath\Destination
op , de resource wordt de inhoud van Archive.zip
de Destination
map uitgebreid als ze er nog niet zijn.
Met Validate ingesteld op $true
en Checksum ingesteld SHA-256
op, vergelijkt de resource de SHA256-controlesom van elk uitgevouwen bestand ten opzichte van het relevante bestand in Archive.zip
. Als de controlesom voor een uitgevouwen bestand niet overeenkomt met de controlesom van dat bestand Archive.zip
, heeft de resource de gewenste status.
Als force is ingesteld $true
op, overschrijft de resource alle uitgebreide bestanden met een onjuiste controlesom. Als Force is ingesteld op $false
, zou de resource een uitzondering genereren in plaats van de bestanden te overschrijven.
Met Invoke-DscResource
Dit script laat zien hoe u de Archive
resource met de Invoke-DscResource
cmdlet kunt gebruiken om ervoor te zorgen dat Archive.zip
deze wordt uitgebreid naar de Destination
map met SHA256-controlesomvalidatie.
[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
}
}
Met een configuratie
Dit fragment laat zien hoe u een Configuration
met een Archive
resourceblok kunt definiƫren om ervoor te zorgen dat Archive.zip
deze wordt uitgebreid naar de Destination
map met SHA256-controlesomvalidatie.
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'
}
}
}