Skip to content

Fredrik81/Reboot-Dialog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Reboot-Dialog Tweet


Will run silently in background and show a popup dialog when reboot is needed with snooze options.
My image

Download:


Download from releases

I made this program to solve an issue i was facing where we did not want to force reboots of clients but simply inform them that a reboot was needed with a reminder dialog and snooze options.

Installation

Documented information on how to perform manual installation or automatic using powershell script. The powershell can easily be added to for example SCCM to mass deploy. Install Instructions

How it works and requirements


Requirements

This program is made only for Windows and .Net 4.6+ is required (Built-in for Windows 10).
It does not use/require network access and is fully customizable in the dialog.

  • Windows 10 (any version x86 or x64)
  • Windows 8 & 8.1 (with .Net 4.6 or higher installed)
  • Windows 7 SP1 (with .Net 4.6 or higher installed)

Windows 7 SP1 .Net 4.6 (unpatched except .Net 4.6)

Windows 7 SP1

How it works

When the program is started it will hide it self in the background. You will not see anything on the taskbar or system tray.
Every 5min if there is a pending reboot and if detected it will present a dialog to the user.
It will only allow one process to be started so if you even run this from a scheduled task.
The dialog will be suppressed for the first 15min after the system reboots, this is to ensure patches or other setups have time to finish so no false detection is made.
You can see the process in task manager on the machine and also kill it there if you want.
My image

Detection of reboot is made from three things at this time:

  • Windows Update is installed and pending reboot
  • Component Based Servicing is pending a reboot (can be turned on or off from config)
  • Microsoft System Center Configuration Manager (SCCM) have installed update or application that require reboot
    SCCM Client is not needed it's just an extra check if you have it installed.
  • System boot time, you can configure so the dialog is show if the device have been up for more than X days. Configurable from configuration, default is 0 = disabled.
    (More to come)

SCCM client is not required it's just an extra check and this will work with an Intune only (or other management tool as well).

Default snooze options are set to 15min, 30min, 1 hour or 2 hours.

Trigger/On-Demand mode

The program also has an argument (/trigger) that will prompt the user immediately when executed and give the normal snooze options defined in the configuration.
This mode can be useful if you want to prompt the user for reboot from a script, example after installation of a program.
Example: "C:\Program Files\RebootDialog\Reboot Dialog.exe" /trigger

Customizations


You can change picture, text fields and button text to make it look the way you want it or branded to your company.
All the text can be changed from the file "Reboot Dialog.exe.config".
To change picture, you need to place a file in the same directory called "Picture.png" with size 292x164.
Demo of customizations

Multi-Language

The program support multi-language and you can add/change the texts from the file "Languages.xml".
If you need to change the built-in langauge than you can do that from the "Reboot Dialog.config" file.
Examples is found in the demo page: Demo of customizations

Test mode

Test mode can now be activated with command-line argument: /TestMode
Example: "C:\Program Files\RebootDialog\Reboot Dialog.exe" /TestMode
Test mode will force the reboot dialog to show after 5 seconds and the "reboot now" button will only close the application instead of rebooting.

Customized Snooze options

You can customize snooze options from the applications configuration file (Reboot Dialog.exe.config).
Snooze

Syntax:
Never diapering option: [Text];[Minutes]
Disappearing after X amount of days: [Text];[Minutes];[Days Available]

Examples:
30min;30

  • Snooze the reminder for 30min.

2 Hours;120;2

  • Snooze the reminder for 2 hours, this option will disapear after 2 days of snoozing.

Configuration example (the default)
Snooze options available "forever" 15min and 30min.
User can snooze for 2 hours the first day and 1 hour the first two days.

<setting name="SnoozeOptions" serializeAs="Xml">
    <value>
        <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <string>15min;15</string>
            <string>30min;30</string>
            <string>1hour;60;2</string>
            <string>2hours;120;1</string>
        </ArrayOfString>
    </value>
</setting>

Configuration example "soft forced reboot"
No snooze options available that is available "forever".
User can snooze for 2 hours the first day.
1 hour the first two days.
30 min the first three days.
15 min the first four days.
After four days the dialog will stay on the screen with only reboot button available.

<setting name="SnoozeOptions" serializeAs="Xml">
    <value>
        <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <string>15min;15;4</string>
            <string>30min;30;3</string>
            <string>1hour;60;2</string>
            <string>2hours;120;1</string>
        </ArrayOfString>
    </value>
</setting>

Feel free to request features or submit bugs from the Issues part in github.
I hope you find it useful :-)



ko-fiTweet
Analytics