Test-FileCatalog

Test-FileCatalog 驗證目錄檔案(.cat)中所含雜湊值是否與實際檔案的雜湊值相符,以驗證其真實性。

此指令檔僅支援 Windows。

語法

Default (預設值)

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 參數跳過任何檔案。

Important

版本 1.0(基於 SHA1)的目錄已被棄用,不應被信任用於安全敏感的工作流程。

此指令檔僅支援 Windows。

範例

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

$NewFileCatalogParams = @{
    Path = "$PSHOME\Modules\Microsoft.PowerShell.Utility"
    CatalogFilePath = "\temp\Microsoft.PowerShell.Utility.cat"
    CatalogVersion = 2.0
}
New-FileCatalog @NewFileCatalogParams

$TestFileCatalogParams = @{
    CatalogFilePath = "\temp\Microsoft.PowerShell.Utility.cat"
    Path = "$PSHOME\Modules\Microsoft.PowerShell.Utility\"
}
Test-FileCatalog @TestFileCatalogParams
Valid

範例 2:驗證檔案目錄並附有詳細輸出

$TestFileCatalogParams = @{
    Detailed = $true
    CatalogFilePath = "\temp\Microsoft.PowerShell.Utility.cat"
    Path = "$PSHOME\Modules\Microsoft.PowerShell.Utility\"
}
Test-FileCatalog @TestFileCatalogParams
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)的路徑,包含用於驗證的雜湊值。

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:0
必要:True
來自管線的值:True
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-Confirm

在執行 Cmdlet 之前,提示您進行確認。

參數屬性

類型:SwitchParameter
預設值:False
支援萬用字元:False
不要顯示:False
別名:參見

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Detailed

回傳更多資訊,包含 CatalogInformation 測試過的檔案、預期/實際雜湊值,以及目錄檔案(如果有簽名)的 Authenticode 簽名。

參數屬性

類型:SwitchParameter
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-FilesToSkip

一組路徑陣列,不應作為驗證的一部分進行測試。

參數屬性

類型:

String[]

預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Path

一個資料夾或檔案陣列,應該與目錄檔案進行驗證。

參數屬性

類型:

String[]

預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:1
必要:False
來自管線的值:True
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-WhatIf

顯示 Cmdlet 執行時會發生什麼事。 指令未執行。

參數屬性

類型:SwitchParameter
預設值:False
支援萬用字元:False
不要顯示:False
別名:威斯康辛

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

CommonParameters

此 cmdlet 支援常見參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters。

輸入

DirectoryInfo

你可以用管道 DirectoryInfo 連接一個物件,代表需要驗證檔案的路徑。

String

你可以用管道連接一個字串,代表需要驗證檔案的路徑。

輸出

CatalogValidationStatus

預設情況下,此 cmdlet 會回傳一個 CatalogValidationStatus 物件,其值為 Valid 或 ValidationFailed。

CatalogInformation

當你使用 Detailed 參數時,cmdlet 會為每個檔案回傳一個 CatalogInformation 物件,可用來分析可能通過驗證或未通過驗證的特定檔案、預期與發現的雜湊值,以及目錄中使用的演算法。

備註

此 Cmdlet 僅適用於 Windows 平臺。