Вот общий принцип:
Код:

$sSourceFolder = 'C:\Мои проекты\02'
if(Test-Path -Path $sSourceFolder -PathType Container) {
Get-ChildItem -Path $sSourceFolder | Where-Object -FilterScript {$_.PSIsContainer} | ForEach-Object -Process {
$oFileInfos = Get-ChildItem -Path $_.FullName | Where-Object -FilterScript {-not $_.PSIsContainer}
if($oFileInfos.Count -gt 0) {
Write-Host "$($_.FullName): set LastWriteTime from [$($_.LastWriteTime)] to [$($oFileInfos[0].LastWriteTime)]."
$_.LastWriteTime = $oFileInfos[0].LastWriteTime
} else {
Write-Host "Can't find any file in folder [$($_.FullName)]." -ForegroundColor Red
}
}
} else {
Write-Host "Can't find source folder [$sSourceFolder]." -ForegroundColor Red
}
Для указанной папки получаем перечень вложенных папок первого уровня. В этом перечне для каждой из папок ищем файлы. Если найден хотя бы один файл, берём первый из них (для NTFS — это будет всегда первый по алфавиту) и присваиваем дате/времени последней модификации родительской для него папки дату/время последней модификации этого файла.
P.S. Вопросы моего предыдущего сообщения остаются в силе.