Эта строка является вашей проблемой:
if (Get-ChildItem -Path $folder -Recurse -Force | ForEach-Object { $_.FullName} |...)
Эта строка возвращает только пути к файлам и отправляет список строк по конвейеру.Итак, вы взяли объект, захватили одно свойство (полное имя), затем передали его в where-object и проверили на наличие ModifiedDate, которого больше не существует.
Скорее всего, вы хотите, чтобы что-то подобное выполняло:
$folder = 'C:\ps-files\ClaimRedrop'
$filter = '*'
$date = (Get-Date).addDays(-1)
#Check if files exist outside of if statement. This is better for readability
$FileCheck = Get-ChildItem -Path $folder -Recurse -Force |
Where-Object {$_.lastwritetime -gt $date}
if ($FileCheck){
# Avoid using Write-Host where possible. Whenever possible write to output or default
$FileCheck | ForEach-Object {Write-Output $._FullName}
}
else{
Write-Output "I have nothing to do."
}