Can anyone suggest a tool/method to simulate various scenarios when using WSUS? Or am I asking the impossible? I'm curious to know if I deploy X number of patches over slow links is there any way of determining when all of the machines on the other end of the wire will be updated?
Virtual machines in a test environment that allows you to implement rate-limiting (to simulate various link speeds) is the best solution. But, as Andrew noted, there are considerable costs associated with this.
Another approach might be to simply break out your pencil and perform some back-of-the-napkin calculations. What's the link speed, how large is the set of patches, can they be multicast, how many machines on the remote end, and so on. Once you've considered these variables you might decide that it's simpler to deliver a single set of patches to a second WSUS server on the far end and move on with life.
Not knowing anything about how your network is engineered makes this a difficult question to answer concisely.
If you're concerned about bandwidth and remote WSUS servers isn't an option, then you can also tune your BITS settings in a GPO for those sites; the clients may get the patches slower but better than not at all.
You know what the obvious answer to this is - virtual machines.
However I think your question is a bit more complicated than that, right?
Can you define what is a slow link? Are we talking dial-up?
Do you have a bunch of mobile users, and you want to know when they would all be updated? But you don't know when they will connect and over what speed links?
Apart from doing a dry run, which is very costly in time, there isn't an easy way to model this. Perhaps it would be better for management to insist that these machines connect for a certain period within which patches can be deployed?
Why have Virtual Machines become the knee-jerk reaction to administration problems?
VMs are not magic pixie dust to sprinkle over your problems.
You should figure out how long it takes to download a certain sized file over the link. Nice round numbers are convenient, let's make it 1GB.
Make a guess.
In this case your deployment of WSUS is interesting, usually WSUS is deployed on the local end of a slow link. There are really only two reasons to deploy WSUS: management and bandwidth. Putting WSUS on the distant end of a link is really no different (bandwidth wise) from downloading all your patches from Microsoft. Every client has to access the same slow link.
Have you considered deploying another WSUS server at the local end of your link?
If this is a branch office, and you do not want/cannot deploy a WSUS server. Consider doing patches starting Friday evening and letting them roll throughout the weekend.