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 平臺。