Задачу решил следующими костылями:
скрипт 1 - перенос всех файлов старше N дней:
Код:

$days = 120
$path = "D:\data"
$dest = "D:\temp"
Get-ChildItem $path -Recurse | where { $_.LastAccessTime -le ((Get-Date).AddDays(-120)) -and !$_.PsIsContainer } | Move-Item -Destination { md $_.DirectoryName.Replace("$path","$dest") -force }
После переноса файлов, структура каталогов в папке-источнике сохраняется.
Т.к. в этой папке и всех её подпапках были изображения, то так же в папке был скрытый файл Thumbs.db. Автоматически его удалить не получилось, ни powershell, ни vbs, ни cmd не смогли удалить их, по этому удалил их через поиск.
скрипт 2 - удаление всех пустых каталогов:
Код:

#$path = "D:\data"
#dir -Path $path -Recurse | ?{$_.psiscontainer} | sort pspath -Descending | ?{!$ExecutionContext.InvokeProvider.ChildItem.HasChild($_.pspath)} | del
или так
Код:

$path="D:\data";
$EmptyFolders = ls $path -Recurse | ?{
(ls -Path $_.FullName -Recurse -Force | ?{
$_.PSIsContainer -eq $false
}) -eq $null
};
if ($EmptyFolders -ne $null) {
$EmptyFolders | %{
if (Test-Path $_.FullName) {
$_ | ri -Recurse
}
}
}