Powershell Get-FileHash未按预期工作
我正在尝试使用Powershell Get-FileHash未按预期工作,powershell,Powershell,我正在尝试使用Get FileHash检查文件MD5哈希与哈希数组。考虑这个简单的代码: $dir = Get-ChildItem -Recurse 'C:\Files' $md5hash = @( '6edaaec9c5b9cea3f035065d7283ca07', '023c80233d32b33128841038491af8c7', 'f58d26a3fe697efd84c2a841140bc524') $dir | ForEach-Object { if ($md5ha
Get FileHash
检查文件MD5哈希与哈希数组。考虑这个简单的代码:
$dir = Get-ChildItem -Recurse 'C:\Files'
$md5hash = @(
'6edaaec9c5b9cea3f035065d7283ca07',
'023c80233d32b33128841038491af8c7',
'f58d26a3fe697efd84c2a841140bc524')
$dir | ForEach-Object {
if ($md5hash -contains (Get-FileHash $_.FullName -Algorithm MD5))
{
Write-Output "Match found."
}
else
{
Write-Output "No match.
}
}
始终返回“不匹配”,但我可以手动验证哈希是否正确:
$dir -contains '6edaaec9c5b9cea3f035065d7283ca07'
代码有什么问题?
Get FileHash
不返回字符串,而是返回一个对象,只需运行一次即可轻松验证:
PS> Get-FileHash test.txt -Algorithm md5
Algorithm Hash Path
--------- ---- ----
MD5 B53F079809559E4E8C2B13863B153ABF Home:\test.txt
因此,将代码更改为
$md5hash -contains (Get-FileHash $_ -Algorithm MD5).Hash
Get FileHash
不返回字符串,而是返回一个对象,只需运行一次即可轻松验证:
PS> Get-FileHash test.txt -Algorithm md5
Algorithm Hash Path
--------- ---- ----
MD5 B53F079809559E4E8C2B13863B153ABF Home:\test.txt
因此,将代码更改为
$md5hash -contains (Get-FileHash $_ -Algorithm MD5).Hash