我们提供了数百个驱动程序文件作为驱动程序包的一部分。
它们看起来像这样(这是一个 nvidia 驱动程序)
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 14.12.2023 10:16 26790 nvhda.cat
-a---- 14.12.2023 10:16 80431 nvhda.inf
-a---- 14.12.2023 10:16 129000 nvhda64v.sys
-a---- 14.12.2023 10:16 41984 nvhdap64.dll
对于每个单猫我一直在呼唤
Test-FileCatalog nvhda.cat
对于每一个我都得到了
Unable to open catalog file <fullpath>\nvhda.cat
所有文件的文件权限和所有者均正确。我已检查文件是否cat
已通过 Sysinternals procmon 加载,没有问题。
我使用的是 Windows 10,但 Windows 11 也没有任何结果。也在 Windows Server 2012 上进行了测试。
当我创建一个空的目录文件时,New-CatalogFile
它可以工作,但外部文件却不行。
我可以点击文件cat
并查看哈希值
任何提示都将非常感激!
以下是我的执行过程:
PS D:\> Test-FileCatalog -CatalogFilePath D:\nvhda.inf_amd64_1946e5c46f80c770\nvhda.cat -Path D:\nvhda.inf_amd64_1946e5c46f80c770\
Test-FileCatalog : Die Katalogdatei "D:\nvhda.inf_amd64_1946e5c46f80c770\nvhda.cat" konnte nicht geöffnet werden.
In Zeile:1 Zeichen:1
+ Test-FileCatalog -CatalogFilePath D:\nvhda.inf_amd64_1946e5c46f80c770 ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Test-FileCatalog], InvalidOperationException
+ FullyQualifiedErrorId : UnableToOpenCatalogFile,Microsoft.PowerShell.Commands.TestFileCatalogCommand
答案1
我得到了完全相同的结果:“Test-FileCatalog:无法打开目录文件”。
这 测试文件目录 命令描述如下:
Test-FileCatalog 通过将目录文件 (.cat) 的文件哈希值与磁盘上实际文件的哈希值进行比较来验证文件的真实性。
看起来它需要对文件夹具有写访问权限才能计算哈希值,这意味着它首先将哈希值写入文件夹,然后才进行比较。这是一个合乎逻辑的结论,因为此命令也适用于整个文件夹,而不仅仅是单个文件。