Random number generator in Windows 2008 R2 & Win 2012

We plan to put into 1500 VMs' OS scheduler to run daily to make them "activate" back their
agent (could be a backup or Deep Security agent) back to the central server. Due to unknown
reasons (could be timeout or agent failed to comms back to the server), the software vendor
can't provide a permanent fix or a 'clever' agent that could self-correct itself to re-establish
connection back to the central server (so that central server could manage them)

However, with so many VMs activating back (making Tcp connections) to the central server,
the central server may not be able to take it (ie # Tcp connections max'ed out).

For Linux, I could make the script sleep a random amt of time before activating but for
Windows, is there a random number generator? I plan to put at the beginning of the
Windows batch script "ping localhost -n Random_#" (ie equiv of Linux "sleep Random_amt_time"

Have a look at my scripts at http://scripts.dragpn-it.co.uk too for some others sleep scripts

On phone at moo but you can use %random% and use set /a to divide it smaller if needed. You can also use ping using -w param to wait that many milliseconds.


Have a look at my scripts at http://scripts.dragpn-it.co.uk too for some others sleep scripts

You can configure the scheduled task as well to delay the task for a random amount of time (up to an hour).
When you edit the schedule trigger, you'll find it in Advanced Settings, "Delay task for up to ...".
Task Scheduler > Triggers

If you want to go with the script, you can use the W2k3's ResKit's "sleep.exe" to actually sleep. No need to install it anywhere if you have 7zip or something similar; just unzip the downloaded .exe, then unzip sleep.exe from the rktools.msi, and drop it into the script folder or someplace in the path.
Windows Server 2003 Resource Kit Tools

Finally, note that %random% returns a value between 0 and 32767.
The modulo operator in batch is "%", and if you want to use it in a batch file you need two of those:

Another easy "randomiser" can be to pick the last octet of the IP address say, this one uses the IP related to the default gateway which should be the user's IP address:
echo off
for /f "tokens=4 delims= " %%a in ('route print ^| find ""') do for /f "tokens=1-4 delims=." %%h in ("%%a") do set host=%%k

echo %host%


set /a num=%random% / 512


I could not get the /a right :
set aa=%random%/10
echo %aa%

With oBDA's example, it gave missing operand:
set /a RandomMinutes = %Random% %% 60
Missing operand

Share this

Related Posts

There was an error in this gadget