FOG Client GUI reuse for Notification messages.

  • I administer a lab environment, currently containing about 45-50 computers in total (Not an insanely big setup), all spread out in different sections of a building. Recently I have had to re-image all of them and also redo our naming-scheme due to some organizational changes. I have been trying to find a way to display the computer name environmental variable on the screens regardless if anyone is logged into them or not. For this msg.exe works most of the time (albeit a very simple message box), but if the name changes have not taken effect it does not work correctly. Also I have to send it from a specific computer, as deploying a powershell script seems to keep it all hidden and it will not display the box. My question is, is there a way to reuse the Shutdown GUI on the Fog client to display either notifications for my users, or in this case display a variable on the screen so I can make sure things are in the right order? or would this feature be too difficult to implement?

  • Moderator

    @davidedpg10 I did think of a way to do this while I was fixing my furnace today (don’t ask why).

    You can use a snapin to deploy a batch file which calls the msg.exe command on the remote computer with the destination of the remote computer. Just have the batch file pick up the computer name from the environment variable or write a vbscript to do that. Since you are running msg,exe ON the target computer IT should know its own name.

  • @Joe-Schmitt Thank you, that was a very detailed explanation and it does clear things up. I appreciate it. Hopefully the TL;DR: Messages can be implemented, I am sure that would help greatly as well.

  • The new fog client already guarantees the name is right, unless the fog client has a communication problem. In that case, having it do anything wouldn’t work anyways.

  • Senior Developer


    TL;DR: Messages on the user desktop could be done, login screen is not possible. However, FOG 1.3.X is no longer adding features as FOG 2.0 is under way

    Detailed explanation:

    In the days of Windows XP what you want would certainly be valid (infact the legacy client took advantage of this). However, since Windows XP Microsoft has introduced something commonly called Session 0 isolation. Session 0 means the “root” account (or SYSTEM) is running the process (the fog client is one such Session 0 process). The main issue session 0 isolation fixes is un-authorized process elevation. Let’s pretend for a second that the fog client could infact open a UI on the user’s desktop from SYSTEM. This means that your regular old user now has access to a UI that has unrestricted access. That means if the UI can be exploited, a regular old user could do some massive damage to your system. This is why snapins are prohibited from showing any kind of UI.

    The client works around this Session 0 isolation by having “user agents” run. That is, whenever a user logs in a FOGUserService is spawned in the user’s session. Then the Session 0 service communicates with the user agent as basically a relay. Need to spawn a shutdown prompt? Send a request to every user agent running to do it on our behalf. So sending a message to the user desktop is certainly possible, but at this point we aren’t adding new features.

    So with that said, we could certainly display some message on a logged in user’s screen. But for the login screen? That would need some heavy integration with the Windows interactive Logon Architecture, which requires a massive amount of work, or for the Session 0 isolation to not be present.

  • @george1421 I had read about the VBScript option, I can use msg.exe if I send it directly to the computer name (and it will do what I need, meaning it will display it even if nobody is logged in so in the lock screen). The problem is that if the DNS records have not updated, the computer name is not recognized and msg.exe is pretty much useless if I am sending it to a remote computer. I wanted something which I could deploy or send from fog (given that fog will deliver regardless of computer name) and display info/variables/notifications even on the lock screen. I can send a powershell script from fog which displays the computer name variable, but it is ran in the background and the messagebox containing the computer name never pops up(the script works if I run it manually on my computer). so that’s why I was wondering if there was a way to use fog for notifications and messages purposes.

  • Moderator

    I think I understand what you want, but this is not a native function of fog.

    Just to be clear you want to display the name of the computer to the user or support tech. If I understand this correctly you can do this in three ways (not related to FOG).

    1. You can instal BGInfo on the target computer, it will update/change the background on the desktop to contain the name of the computer, plus any other info you might need.

    2. You can change/replace “Computer” in the start menu with the real name of the computer:

    3. Create a quick VBScript that pops up a window that displays the computer name. Just create a menu short cut that calls the vbscript.

  • I’m a little confused to what you’re wanting here.

    FOG can handle the renaming (in fact I suggest it) and will notify the users before rebooting.