Remote Reboot X
Remote Reboot X
*The Ultimate WSUS Companion Tool*
Version 1.5
For, questions, bug reports, feature requests etc, please visit the forum.
NEW RELEASE OF REMOTE REBOOT X IS COMING SOON!
What it is
Remote Reboot X is an application that I initially created to reboot a large number of remote computers simultaneously, while being able to monitor their statuses in real-time. However, I soon added functionality to handle the installation of Microsoft’s Windows software updates on the remote computers as well. If you’re wondering what the X in Remote Reboot X means, it’s simply a way to signify the number of machines that are being rebooted. When 22 hosts are added to the application, the title bar will display “Remote Reboot X22″ or Remote Reboot times 22, for example.
Why I created it
My original goal was simple… I wanted to learn .NET…. However, what kept me motivated throughout the learning process was the fact that I had a real goal in mind– to eventually make a monthly task at my job easier and less stressful. I work as a systems administrator for a software and consulting firm where I have a one-hour window once per month to install Microsoft’s Windows software updates on no less than 100 servers, reboot the servers, and then verify that they’ve come back online properly. In order to handle so many servers in such a short period of time, the process simply had to be automated. However, I couldn’t find an existing application to do what I wanted, so I decided to create my own.
How it works
You start by loading a list of computer names or IP addresses. You can then highlight one, some, or all the host entries to perform actions on just the selected hosts. Either right click on the currently selected rows or use the Actions menu to select an action to perform. The following are available to choose from:
- Ping. The ping reply initially displays in black, then red if it times out, and then after 4 consecutive time-outs, any subsequent replies will turn blue to signify that the machine has been rebooted
- Install Windows Updates on the remote machine(s) (requires Microsoft’s SysInternals PsExec in your system path)
- View the WSUS installation log for the remote machine(s) – this log is stored in C:\RRx on all remote computers. (Tip: You can doubleclick a row to view the log file)
- Reboot the remote machine(s) (will also automatically start ping monitoring if you haven’t already started it)
- Retrieve the last boot-up time of the remote machine(s) – comes in very handy when you’re rebooting machines
- Load a | delimited text file to automatically populate the “Notes” column – this makes it simple to keep an ongoing list of any instructions you might have that are specific to certain machines, such as programs to start after a machine is rebooted and logged on
- Wake on LAN – Sends “magic packet” to the MAC address that you specify in the Host column. MAC addresses must be entered with no spaces or dashes.
Screenshots
System Requirements
- RemoteRebootX was created using Microsoft’s Visual C# 2008. In order to use it you must have the .NET Framework installed.
- For the WSUS actions, you must have Microsoft’s Sysinternals PsExec in your Windows system path or in the directory that you launch Remote Reboot X from. If you’re unsure about modifying your system path, you can simply drop psexec.exe into C:\Windows and that should do the trick. Make sure to manually run psexec.exe at least once to accept the license agreement, otherwise “WSUS – install downloaded updates” will not work.
Additional Notes
- The “WSUS – install downloaded updates” option will install updates that have already been downloaded by the remote host. For systems administrators, my recommendation is to use Group Policy to control how your computers handle WSUS updates. Create and link a GPO on the OU where you keep your servers. The setting that needs to be defined is under
\Computer Configuration\Administrative Templates\Windows Components\Windows Updates\Configure Automatic Updates
- Set the policy to option number 3, which specifies to download but not install updates. This enables you to use Remote Reboot X to install them at your convenience or during a scheduled maintenance, for example. You can, of course, choose a different option and use the “WSUS – search, download, install updates” action instead, but if you have lots of computers downloading updates simultaneously either from your WSUS server or directly from Microsoft, you should be careful about overwhelming your WSUS server or your network connection.
- Retrieve a list of computers that have already downloaded updates but haven’t installed them
- Retrieve a list of computers that have already installed updates and are waiting to be rebooted
- Retrieve a list of computers that have not checked in with the WSUS server in more than 3 days
I used to define the policy to download and install the updates, but there would sometimes be issues, and it became apparent that I needed more control. With so many machines and such a small maintenance window, it was no longer acceptable to let WSUS install, download, and reboot the computers. Too often I’d run into a problem where a machine wouldn’t install an update, or a service would get stopped but not restarted, or a machine would hang on reboot. I created Remote Reboot X to help address those issues, and I think there must be other systems administrators out there with similar problems, which is one of the reasons I decided to distribute it.
Along with RemoteRebootX.exe there are 3 additional .NET executables included in the zip file below. To use them you must have the WSUS Admin Console 3.0 installed on your computer. They will allow you to connect to your WSUS server and …
Limitations
- The installation of Windows Updates is performed by executing a script (using PsExec) on the remote machine(s). If Integrated Security is not enabled when you choose “WSUS – install downloaded updates” from the actions menu, PsExec will send the specified credentials in clear text to the remote machine. However, if you enable Integrated Security (impersonates the currently logged on user) your credentials will not be passed in clear text.
- Although you could theoretically load an infinite number of hosts into one instance of the application, I think you’ll have a much better experience if you instead launch multiple instances of Remote Reboot X with 50 to 100 hosts per process.
- If a log file is inaccessible for whatever reason you will not get an error when you try to launch it. It will simply fail silently. I’ll probably change this in the future, but for now it was the cleanest approach. You will not be able to view a log file while updates are being installed. You will, however, be able to view it before and after the update installation. Or, if you really need to see it while the installation of updates is taking place, you can browse directly to the file - \\remotehost\c$\rrx\rrx.log – and launch it in a text editor like notepad.
Download
This software is provided as-is with no warranty of any kind. You may download and use it for free, but you may not sell or distribute it under any circumstances.
Remote Reboot X Version 1.5 (build 20091013)






Would love to see just one more functionality. Just search and download updates. We have “freeze” periods but are allowed to download patches to machines in this time. When freeze ends we are allowed to install. I always sit with the problem of getting the patches to the machine to ensure when my change window opens the patches are already on the machine and ready for installation.
Awesome stuff so far though!!!
So far, it works great, if your awake and it’s actively running. One thing that would make this the ULTIMATE however is a scheduling feature and allow the program to run in the background once the schedule is set for each server is set so I don’t have to stay logged into my WSUS server all of the time.
Please add following feature:
- Pending updates… (thanks this feature we will get info it there is any updtate to install on server).
Kick ass dude i like this, im testing your app and it seems that its got a issue with Server 2008 R2 64Bit maybe check this out in your new version. Yet again this type of app has been log over due!!!
Hi Doug,
Hi, I am a Network Admin, and I have been testing out your remoteboot X software. It is very useful. I wanted to make a recommendation for your next release. Is there are way that the PING can be forced to use the PING “servername” -4? I have servers that have IPv6 enabled, and the IPv6 i guess is defaultly showing for those servers through the remoteboot x ping column. If you used the PING “servername” -4 switch from within your code, it would force it to show the IPv4 standard IP address. Other than that, great product! Thanks!
Kho.
This seems to be like an excellent tool.
I am system administrator and one my tasks is to install patches and reboot the machines.
I also have to check after the reboot if the services which are set to “Automatic” are started.
Please let me know if you can add this feature to it.
Thanks
UK
Hi Doug,
I am trying to get your Remote Reboot app working but I get the error message “the rpc server is unavaliable” when trying to reboot from your app. I have port 135 open to the workstation. Any idea why I am getting this message?
Thanks,
John
Santa Rosa, CA
Hi,
I appreciate a lot your Sunday afternoon project, how will be if it was a main job?
Well done
Hi,
I just wanted to say I think this is a fantastic tool, and definitely getting to a full fledged product. Are you planning on releasing the next revision soon? Once the new version that is more feature-rich is released, I will gladly donate a few hundred dollars as I could definitely see it saving me a lot of time.
Thanks,
Victor
hi Doug,
Thank you for this tool.
Doug,
Your tool is tremendous. I am looking at scripting a similar thing myself, but don’t want to re-invent the wheel. Unfortunately, I have a need to do some custom stuff when patching. We have a few applications that need to be patched, then shut down, and left off until started later.
Would you be willing to extend your tool to include the option to patch, then shutdown instead of reboot? I also need the ability to execute a command using psexec, which could be drawn from a file.
What would be tremendous would be the ability to put our list of servers into a file, with commands after them like |[reboot/shutdown]|Pre-command|Post-command
Would you be willing to do this for a donation? If not, I understand, and will work on developing my own.
Thanks, and again, – beautiful, tremendous work.
Josh Howell
Senior Systems Administrator
I’m a consultant that supports systems for many different businesses that do not have a domain controller.
Is there a way to implement this software remotely across a firewall/router? I’m curious what it would take to do this – Hamachi VPN, port forwarding, ??
Interesting program you have here… Looking forward to your answer.
Thanks,
-Tom Inman
Frustrating product:
- When performing a WSUS function I get “Could not find file \\\C$\RRx\rrxTemp.log” What’s up with that?
- Application does not save my list of servers from session to session, which makes the whole exersize silly.
- When functions fail, they all seem to fail silently. If your lucky the column in the interface will tell you something, but most of the time your get no errors, no logs, no nothing.
This could be a good product with a little polish.
Hey. I guess it helps if you look at the forum before launching a tirade. My “Could not find file…” issues was caused by our antivirus/antimalware product. I also figured out how to save my list of servers via Save State…/Load State…, so basically I’m a happy camper again.
AO – thanks for the feedback. I agree that the app definitely needs polishing. Keep your eye out for a new release in the coming months that will address all of these items.
Thanks,
Doug
This application is very powerfull.
My coworker make a similar application, but He get put progress bar during the instalation.
He used the Interop.WUApiLib.dll to do this.
He create two .exe, one of them run in the client side and during the instalation report the status using this dll.
May be You can do the same thing in your next release.
Tks
Thanks for the tip. I’ll take a look!
Great idea for an application. However, we actually block PSEXEC on our servers. is there anyway to change the functionality to use WINRM instead. WINRM can actually provide remote administration over an SSL connection which is more secure than PSEXEC.
Thanks.
Brian – thanks for the suggestion. I’ll consider WinRM for a future build.
-Doug