I know this is an old thread, I just came across this problem myself when I was moving my files back to PC from Mac. Here is the approach I took:

# Check to see what files are in the directory, you may want to save this to a variable or CS

ls -Recurse -force | Where-Object {$_.Name -like "._*"} | Select Name, Directory, Length

# See how many files exist that meet the criteria

ls -Recurse -force | Where-Object {$_.Name -like "._*"} | Measure-Object

# Use the -Force switch to get past the permissions restrictions on the hidden files

ls -Recurse -force | Where-Object {$_.Name -like "._*"} | Remove-Item -Force

# Rinse and repeat for the .DS Store files

ls -Recurse -force | Where-Object {$_.Name -like ".DS*"} | Measure-Object

ls -Recurse -force | Where-Object {$_.Name -like ".DS*"} | Remove-Item -Force