You could use some Powershell training. Download and review this document.
https://www.sapien.com/books_training/Windows-PowerShell-4
Have you already configured your servers for remoting access? If you can't connect you would need to RDP to each server and run this command.
winrm quickconfig
Do you need to do this process for one user or many? This code assumes multiple users.
$sb = { # This is the code that runs on the remote machine
"Running on {0}" -f $env:COMPUTERNAME
$users = Get-ChildItem 'c:\users' -directory
"We found {0} users." -f $users.count
foreach ($user in $users) {
"Checking user {0}" -f $user.name
$DesktopCSV = Get-ChildItem $("{0}\Desktop" -f $user.fullname ) -filter s*.csv
"CSV count = {0}" -f $DesktopCSV.count
if ($DesktopCSV.count -gt 0) {
$DesktopCSV | Copy-Item -Destination C:\Save -whatif # remove the whatif to actually do the copy
}
}
}
#$Credential = Get-Credential # if you wish to be prompted for credentials, do it here.
#$User = ".\admin" # or hardcode the account name +pswd if you need it.
#$PWord = ConvertTo-SecureString -String "admin" -AsPlainText -Force
#$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, $PWord
$ServerName = Get-Content C:\Save\ServerNameList.txt
foreach ($Server in $ServerName) {
"--------------{0}------------" -f $server
# If you are in an AD environment, and you are executing the script as an account that has admin access
# to the remote systems, you can use this call
Invoke-Command -ComputerName $Server -ScriptBlock $sb
# If you need to provide credentials to the remote system, then pass the credential value
#Invoke-Command -ComputerName $Server -ScriptBlock $sb -Credential $Credential
}