Используете Compare-Object и Where-Object
$oldfile = Get-FileHash .\old\*
$newfile = Get-FileHash .\new\*
Compare-Object $oldfile $newfile -Property Hash -PassThru |
Where-Object { $_.SideIndicator -eq '<=' } |
Foreach-Object { Copy-Item $_.Path -Destination $Destination }
Не знаю что и куда вам копировать, поэтому в примере, может быть, придётся поменять условие при
SideIndicator
Для рекурсивного сравнения надо сбор хешей сделать рекурсивным :)
$oldfile = Get-ChildItem .\old\* -Recurse | Get-FileHash
$newfile = Get-ChildItem .\new\* -Recurse | Get-FileHash