There are several limitations that i've run into when attempting to replace the sylink.xml file on many machines at once.
The communication updater although it works great when you have a very small number of machines to move, it tends to stop working well on anything over 50 machines . On top of that, if it's unable to reach one of those machines the software doesn't just flag that machine for you to reference later, it requires you to manually acknowledge that it cannot access it before it will move onto the next machine in your list.
In my case, I had to manually move 5000+ clients. It was very tedious and since I had to watch each one through the communication updater, it took up much of my work day for almost a week where I had barely moved 1000 machines. I created the following script in powershell to help me along. I hope that someone out there finds it useful and or expands upon it to make it even better.
The script itself is just looking at a list of IP addresses I gave it, copying down the sylink.xml and sylinkdrop.exe that I got from the SEPM server I want my machines to end up on and lastly, running the the bat file that kicks off the sylinkdrop.exe
Folder Name : Sylink
Files in folder :
Sylink.bat
Sylink.xml
Sylinkdrop.exe
I'm told if you can get that folder copied down to each machine, you can use AD to fire off the bat file as well. That wasn't feasible in this case and I liked using PS for error checking and also the ability to create a log file of what has failed.
I'd suggest full testing in your own environment before attempting this.
-------------------------------------------------
Powershell
$ips = Get-Content "E:\*file with IP addresses listed*.txt"
foreach ($ip in $IPS) {
if (test-Connection -Cn $ip -quiet) {
New-PSDrive -Name X -PSProvider FileSystem -Root "\\$ip\c$" -ErrorAction SilentlyContinue -ErrorVariable ProcessError;}
elseif ($processError) {
"\\$ip\c$ either does not exist" | Out-File -Append E:\error.txt}
elseif (-Not $processError) {
Copy-item E:\Sylink\* -destination X:\ -recurse
E:\pstools\psexec.exe /accepteula -s \\$ip "c:\Sylink\sylink.bat"
Remove-PSDrive -name X
}
else {
$ip | Out-File -Append E:\offline.txt
}
}
----------------------------------------------------------------------
Bat file
@echo off
C:\Sylink\sylinkdrop.exe -silent C:\Sylink\sylink.xml
-----------------------------------------------------------------------