You are running into the double hop problem.
https://www.bing.com/search?pglt=41&q=invoke-command+double+hop
Your credentials work when connecting from server1 to server2, but on server2 you can't connect to server3 even if it is server1.
One solution is to use a common local account that is a member of the administrators' group on all machines.
cls
$computers = @("Test10","rio")
$src = '\\{0}\c$\temp' -f $env:computername
$sb = {
"{0} {1} Begin." -f (get-date), $env:computername
"{0} {1} Source folder is {2}" -f (get-date), $env:computername, $using:src
$bdrive = new-psdrive -Name 'z' -PSProvider FileSystem -Root $using:src -Credential $using:credential
$Files = Get-ChildItem z:\
"{0} {1} We found {2} files." -f (get-date), $env:computername, ($Files).Count
Remove-PSDrive -Name 'z'
"{0} {1} End." -f (get-date), $env:computername
}
$User = ".\admin"
$PWord = ConvertTo-SecureString -String "admin" -AsPlainText -Force
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, $PWord
Invoke-Command -ComputerName $computers -ScriptBlock $sb -Credential $Credential
I did add a Start-Sleep for one machine to test to see if the commands were executed one at a time, but it appears that they run concurrently. I have limited machines to test with.
I don't have an Active Directory environment to test with, but if you do you can try using CredSSP.
https://4sysops.com/archives/using-credssp-for-second-hop-powershell-remoting/
The example that you posted is a "pull" transfer where Invoke-command runs a Copy-Item on the destination server to pull the files from the source server via the C$ share. You can also copy the files where you "push" transfer from the source server to the destination server over the PSSession.
See Example 6 in this link.
I did not test this method, so I don't know if it processes one server at a time or overlaps. If it's one at a time, you can try using a Powershell Job to have multiple copies running at the same time.