Поделиться через


Удаление архива с проверкой файла SHA-256

Описание

В этом примере показано, как использовать Archive ресурс, чтобы гарантировать, что содержимое .zip файла не будет развернуто в определенном каталоге.

Если задано значение "Убедитесь, что Absentдля пути задано значение C:\ExampleArchivePath\Archive.zip". и целевой набор C:\ExampleDestinationPath\Destination, ресурс удаляет содержимое Archive.zip из Destination папки, если они существуют.

Если задано значение Validate set to $true and Checksum , SHA-256ресурс сравнивает контрольную сумму SHA256 для всех, которые существуют как в папке Destination , так и Archive.zipв . Если контрольная сумма для любого файла в папке Destination соответствует контрольной сумме этого файла Archive.zip, ресурс выходит из требуемого состояния. Ресурс удаляет соответствующие файлы при выполнении метода Set . Он не удаляет другие файлы.

С Invoke-DscResource

В этом скрипте показано, как использовать Archive ресурс с командлетом Invoke-DscResource , чтобы гарантировать отсутствие содержимого в Archive.zip папке Destination с проверкой контрольной суммы SHA256.

[CmdletBinding()]
param()

begin {
    $SharedParameters = @{
        Name       = 'Archive'
        ModuleName = 'PSDscResource'
        Properties = @{
            Path        = 'C:\ExampleArchivePath\Archive.zip'
            Destination = 'C:\ExampleDestinationPath\Destination'
            Validate    = $true
            Checksum    = 'SHA-256'
            Ensure      = 'Absent'
        }
    }

    $NonGetProperties = @(
        'Ensure'
        'Validate'
        'Checksum'
    )
}

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

С конфигурацией

В этом фрагменте кода показано, как определить Configuration блок ресурсов, Archive чтобы гарантировать отсутствие содержимого Archive.zip в папке Destination с проверкой контрольной суммы SHA256.

Configuration RemoveArchiveChecksum {
    Import-DscResource -ModuleName 'PSDscResources'

    Node localhost {
        Archive ExampleArchive {
            Path        = 'C:\ExampleArchivePath\Archive.zip'
            Destination = 'C:\ExampleDestinationPath\Destination'
            Validate    = $true
            Checksum    = 'SHA-256'
            Ensure      = 'Absent'
        }
    }
}