首页 > 解决方案 > 如何从文件夹及其子文件夹文件中获取哈希 .csv 列表?

问题描述

所以基本上我正在编写一个数据完整性脚本.. 来评估应用程序文件夹是否每天都被更改。只有在测试时,我才意识到它只读取顶级文件,而不是子文件夹或其中的任何内容。

这就是我写的:

$ACPath = "C:\Program Files (x86)\Tester\sFolder\*"
$BHashOutput = "C:\Scripts\File Integrity\Output\Bhashoutput$(Get-Date -f yyyy-MM-dd).csv"

#Is "C:\Program Files (x86)\Tester\sFolder\" -Recurse | foreach-object {Get-FileHash $_.FullName }

$hashBase = Get-FileHash $ACPath
$hashBase
$hashBase |Export-Csv $BHashOutput -NoTypeInformation


#$hashBasePM = "BHashOutput$((Get-Date).AddDays(-1).ToString('yyyy-MM-dd')).csv"

$hashBaseCurrent = Import-Csv "C:\Scripts\File Integrity\Output\BHashOutput$(Get-Date -f yyyy-MM-dd).csv"
$hashBase = Import-Csv "C:\Scripts\File Integrity\Base\BHashOutput$((Get-Date).AddDays(-1).ToString('yyyy-MM-dd')).csv"

foreach($A in $hashBase)
{
    foreach ($B in $hashBaseCurrent)
    {
        If ($A.path -ieq $B.path)
        {
            If ($A.hash -ieq $B.hash)
            {
              $maintained += 'The file integrity maintained ' + $A.Path
                
            }
            else 
            {
               $tampered += 'The file integrity TAMPERED ' + $A.Path
            }
        }
    }
}

$maintained |Out-File -Fil "C:\Scripts\File Integrity\Output\maintained.txt"
$tampered |Out-File "C:\Scripts\File Integrity\Output\tampered.txt"

标签: powershell-3.0

解决方案


推荐阅读