Expandera ett arkiv med standardfilvalidering och filöverskrivning tillåten
Description
Det här exemplet visar hur du kan använda resursen Archive
för att se till att en .zip
fil expanderas till en specifik katalog och att det expanderade innehållet matchar innehållet i .zip
filen.
Med Se till inställt på Present
, är sökvägen inställd på C:\ExampleArchivePath\Archive.zip
och Mål inställd C:\ExampleDestinationPath\Destination
på expanderar resursen innehållet i Archive.zip
till Destination
mappen om de inte redan finns där.
Med Validate inställt på $true
och Checksum inte inställt jämför resursen egenskapen LastWriteTime för varje expanderad fil med egenskapen LastWriteTime för relevant fil i Archive.zip
. Om värdena för något innehåll i Destination
mappen inte matchar värdet i Archive.zip
är resursen inte i önskat tillstånd.
Med Force inställt på $true
skriver resursen över alla expanderade filer med en felaktig LastWriteTime. Om Force har angetts till $false
genererar resursen ett undantag i stället för att skriva över filerna.
Med Invoke-DscResource
Det här skriptet visar hur du kan använda resursen Archive
med cmdleten Invoke-DscResource
för att säkerställa Archive.zip
att den Destination
expanderas till mappen med standardvalidering.
[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
}
}
Med en konfiguration
Det här kodfragmentet visar hur du kan definiera en Configuration
med ett Archive
resursblock för att säkerställa Archive.zip
att expanderas Destination
till mappen med standardvalidering.
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'
}
}
}