Você pode criar sua própria função de cópia recursiva.
function Copy-WithFilter ($sourcePath, $destPath)
{
$exclude = @('Thumbs.db', '*-Log.csv','web.config', 'Logs')
# Call this function again, using the child folders of the current source folder.
Get-ChildItem $sourcePath -Exclude $exclude | Where-Object { $_.Length -eq $null } | % { Copy-WithFilter $_.FullName (Join-Path -Path $destPath -ChildPath $_.Name) }
# Create the destination directory, if it does not already exist.
if (!(Test-Path $destPath)) { New-Item -Path $destPath -ItemType Directory | Out-Null }
# Copy the child files from source to destination.
Get-ChildItem $sourcePath -Exclude $exclude | Where-Object { $_.Length -ne $null } | Copy-Item -Destination $destPath
}
# $source and $dest defined elsewhere.
Copy-WithFilter $source $dest