Share via


Test-FileCatalog

Test-FileCatalog 會驗證目錄檔案 (.cat) 中包含的哈希是否符合實際檔案的哈希,以驗證其真實性。

只有 Windows 才支援此 Cmdlet。

Syntax

Test-FileCatalog
    [-Detailed]
    [-FilesToSkip <String[]>]
    [-CatalogFilePath] <String>
    [[-Path] <String[]>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Description

此 Cmdlet 僅適用於 Windows 平臺。

Test-FileCatalog 藉由比較目錄檔案 (.cat) 的檔案哈希與磁碟上實際檔案的哈希,來驗證檔案的真實性。 如果偵測到任何不相符專案,則會傳回 ValidationFailed 的狀態。 用戶可以使用 -Detailed 參數來擷取所有這些資訊。 它也會在 Signature 屬性中顯示目錄的簽署狀態,這相當於在目錄檔案上呼叫 Get-AuthenticodeSignature Cmdlet。 使用者也可以使用 -FilesToSkip 參數,在驗證期間略過任何檔案。

只有 Windows 才支援此 Cmdlet。

範例

範例 1:建立和驗證檔案目錄

New-FileCatalog -Path $PSHOME\Modules\Microsoft.PowerShell.Utility -CatalogFilePath \temp\Microsoft.PowerShell.Utility.cat -CatalogVersion 2.0

Test-FileCatalog -CatalogFilePath \temp\Microsoft.PowerShell.Utility.cat -Path "$PSHome\Modules\Microsoft.PowerShell.Utility\"

Valid

範例 2:使用詳細輸出驗證檔案目錄

Test-FileCatalog -Detailed -CatalogFilePath \temp\Microsoft.PowerShell.Utility.cat -Path "$PSHome\Modules\Microsoft.PowerShell.Utility\"

Status        : Valid
HashAlgorithm : SHA256
CatalogItems  : {[Microsoft.PowerShell.Utility.psd1,
                A7028BD54018AE519381CDF5BF91F3B0417BD9345478086089ACBFAD05C899FC], [Microsoft.PowerShell.Utility.psm1,
                1127E8151FB86BCB683F932E8F6538552F7195816ED351A28AE07A753B8F20DE]}
PathItems     : {[Microsoft.PowerShell.Utility.psd1,
                A7028BD54018AE519381CDF5BF91F3B0417BD9345478086089ACBFAD05C899FC], [Microsoft.PowerShell.Utility.psm1,
                1127E8151FB86BCB683F932E8F6538552F7195816ED351A28AE07A753B8F20DE]}
Signature     : System.Management.Automation.Signature

參數

-CatalogFilePath

目錄檔案 (.cat) 的路徑,其中包含要用於驗證的哈希。

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Confirm

執行 Cmdlet 之前先提示您確認。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Detailed

傳回更詳細的 CatalogInformation 物件,其中包含已測試的檔案、其預期/實際哈希,以及簽署目錄檔案的 Authenticode 簽章。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FilesToSkip

不應在驗證中測試的路徑陣列。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

應針對目錄檔案進行驗證的資料夾或檔案陣列。

Type:String[]
Position:1
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

顯示執行 Cmdlet 後會發生的情況。 未執行 Cmdlet。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

輸入

DirectoryInfo

您可以使用管線 DirectoryInfo 傳送物件,代表需要驗證之檔案的路徑。

String

您可以使用管線傳送字串,代表需要驗證之檔案的路徑。

輸出

CatalogValidationStatus

根據預設,此 Cmdlet 會 傳回 CatalogValidationStatus 物件,其值為 ValidValidationFailed

CatalogInformation

當您使用 Detailed 參數時,Cmdlet 會針對每個檔案傳回 CatalogInformation 物件,此物件可用來分析可能或可能尚未通過驗證的特定檔案、預期與找到的哈希,以及目錄中所使用的演算法。

備註

此 Cmdlet 僅適用於 Windows 平臺。