Remote Reboot X

Update: January 25th, 2010

Remote Reboot X

*The Ultimate WSUS Companion Tool*

Version 1.5

(build 20091013)

For, questions, bug reports, feature requests etc, please visit the forum.

NEW RELEASE OF REMOTE REBOOT X IS COMING SOON!


What it isrrx20091013

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

rrx1.5arrx2rrx4rrx5rrx1.5brrx6

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.

    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 …

  • 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

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.

rrx_icon Remote Reboot X  Version 1.5 (build 20091013)

If this application saves you time at your job, PLEASE consider donating. I wrote it initially as just a Sunday afternoon project to learn some Visual Studio.NET, but countless nights and weekends have since been spent working on it, and there’s still a long way to go and lots more functionality to add. Any amount is hugely appreciated. Thank you.

____________________________________________________________________
For, questions, bug reports, feature requests etc, please visit the forum.
To contact me directly you may use the comments form below.
  1. Nico Grobbelaar
    January 18th, 2010 at 05:42
    Reply | Quote | #1

    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!!!

  2. Thomas
    January 25th, 2010 at 12:18
    Reply | Quote | #2

    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.

  3. January 25th, 2010 at 16:39
    Reply | Quote | #3

    Please add following feature:
    - Pending updates… (thanks this feature we will get info it there is any updtate to install on server).

  4. Louis van der Walt
    February 16th, 2010 at 06:47
    Reply | Quote | #4

    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!!!

  5. Kho
    February 24th, 2010 at 12:54
    Reply | Quote | #5

    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.

  6. April 10th, 2010 at 21:39
    Reply | Quote | #6

    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

  7. John Newcomb
    April 25th, 2010 at 04:37
    Reply | Quote | #7

    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

  8. Cherif
    May 13th, 2010 at 08:13
    Reply | Quote | #8

    Hi,
    I appreciate a lot your Sunday afternoon project, how will be if it was a main job?

    Well done

  9. Krutzer
    May 13th, 2010 at 23:29
    Reply | Quote | #9

    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

  10. rocsta
    May 21st, 2010 at 23:36

    hi Doug,

    Thank you for this tool.

  11. Josh Howell
    June 15th, 2010 at 13:47

    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

  12. June 30th, 2010 at 12:30

    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

  13. August 16th, 2010 at 12:16

    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.

  14. August 16th, 2010 at 12:48

    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.

    • August 16th, 2010 at 14:23

      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

      • Lzva
        August 18th, 2010 at 19:50

        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

  15. Brian
    September 1st, 2010 at 14:52

    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.

    • September 1st, 2010 at 15:52

      Brian – thanks for the suggestion. I’ll consider WinRM for a future build.

      -Doug

Comment pages
TOP