共用方式為


移除具有 SHA-256 檔案驗證的封存

描述

此範例示範如何使用 Archive 資源來確保檔案的內容 .zip 不會擴充至特定目錄。

[確定 ] 設定為 Absent 時, [路徑] 會設定為 C:\ExampleArchivePath\Archive.zip 。 和[目的地] 設定為 C:\ExampleDestinationPath\Destination ,如果資源存在,則會從 Destination 資料夾中移除 的內容 Archive.zip

[驗證 ] 設定為 $true ,並將 [總和檢查碼 ] 設定為 SHA-256 時,資源會比較資料夾中和 中 Destination 每個總和檢查碼的 SHA256 總和 Archive.zip 檢查碼。 如果資料夾中任何檔案 Destination 的總和檢查碼符合 中的 Archive.zip 該檔案總和檢查碼,則資源會不符合所需的狀態。 資源會在 Set 方法執行時移除那些相符的檔案。 它不會移除任何其他檔案。

使用 Invoke-DscResource

此腳本示範如何使用 Archive 資源搭配 Invoke-DscResource Cmdlet,以確保資料夾中沒有任何內容 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
    }
}

使用組態

此程式碼片段示範如何使用資源區塊來定義 ConfigurationArchive ,以確保資料夾中沒有任何內容 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'
        }
    }
}