# Avoid OS exit from login screen

**URL:** <https://forum.inductiveautomation.com/t/avoid-os-exit-from-login-screen/100860>\
**Category:** Ignition\
**Tags:** vision\
**Created:** [January 14, 2025, 3:06pm UTC](https://forum.inductiveautomation.com/t/avoid-os-exit-from-login-screen/100860 "2025-01-14T15:06:51Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![e.cutino](https://avatars.discourse-cdn.com/v4/letter/e/e5b9ba/32.png) [@e.cutino](https://forum.inductiveautomation.com/u/e.cutino)\
**Post date:** [January 14, 2025, 3:06pm UTC](https://forum.inductiveautomation.com/t/avoid-os-exit-from-login-screen/100860/1 "2025-01-14T15:06:51Z")

</div>

I use the classic authentication with vision (vers.8.1.44 on Windows 11).

I need for compliance reasons to avoid the OS exit option from standard login. If I start in full screen (as required), it is always present.

Is there a way to hide the cross? In windowed mode is not present, so should be "easy" to manage in some way...

Beyond that, would be also great to avoid the possibility to switch off the touchscreen mode (icon always present) from the same login. Also for that, is there a way?

Thanks!!!

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [January 14, 2025, 3:10pm UTC](https://forum.inductiveautomation.com/t/avoid-os-exit-from-login-screen/100860/2 "2025-01-14T15:10:38Z")

</div>

The best way to avoid exposure of the normal desktop is to launch Vision in full screen **instead of** the normal desktop. This is easily accomplished with a custom `.Xsession` script that monitors the java process, and exits when java exits. This automatically returns the system to the OS login window, where normal auto-login has the opportunity to re-launch the Vision Client.

When the normal desktop is never launched, it cannot be made available to the user with any trickery. (The normal desktop executable could even be omitted from the system.)

Oh, snap! You said Windows 11. Sorry. (I strongly recommend **not** deploying Windows in production environments. That is engineering malpractice, in my not-so-humble opinion.)

---

<div class="post-metadata">

**Author:** ![dkhayes117](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/dkhayes117/32/68344_2.png) [@dkhayes117](https://forum.inductiveautomation.com/u/dkhayes117)\
**Post date:** [January 14, 2025, 3:21pm UTC](https://forum.inductiveautomation.com/t/avoid-os-exit-from-login-screen/100860/3 "2025-01-14T15:21:17Z")

</div>

Have you explored the `Project→Project Properties→Vision` options in the designer? Look at the `General` and `Launching` and `User Interface` tabs.

---

<div class="post-metadata">

**Author:** ![e.cutino](https://avatars.discourse-cdn.com/v4/letter/e/e5b9ba/32.png) [@e.cutino](https://forum.inductiveautomation.com/u/e.cutino)\
**Post date:** [January 14, 2025, 3:25pm UTC](https://forum.inductiveautomation.com/t/avoid-os-exit-from-login-screen/100860/4 "2025-01-14T15:25:57Z")

</div>

Thx, I see the point about Windows 11, not my/our choice. Now I have to find out a way.

About Project-\>Project property I started from that: sorry, maybe my fault but nothing for hiding the cross to escape to OS.

---

<div class="post-metadata">

**Author:** ![dkhayes117](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/dkhayes117/32/68344_2.png) [@dkhayes117](https://forum.inductiveautomation.com/u/dkhayes117)\
**Post date:** [January 14, 2025, 3:30pm UTC](https://forum.inductiveautomation.com/t/avoid-os-exit-from-login-screen/100860/5 "2025-01-14T15:30:05Z")

</div>

You can also limit the actions in the Menubar through `Vision→Client Events→Menubar` in the project browser. At one point, I had a client setup where the exit was available in the Menu bar, but you had to use a password for it to execute using `Shutdown-Intercept`.

---

<div class="post-metadata">

**Author:** ![e.cutino](https://avatars.discourse-cdn.com/v4/letter/e/e5b9ba/32.png) [@e.cutino](https://forum.inductiveautomation.com/u/e.cutino)\
**Post date:** [January 14, 2025, 3:33pm UTC](https://forum.inductiveautomation.com/t/avoid-os-exit-from-login-screen/100860/6 "2025-01-14T15:33:09Z")

</div>

Hi Daniel, clear what you mean. Not sure from the login screen that event is already trapped... I try immediately.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [January 14, 2025, 3:35pm UTC](https://forum.inductiveautomation.com/t/avoid-os-exit-from-login-screen/100860/7 "2025-01-14T15:35:45Z")

</div>

Menubar functionality doesn't exist before login.

> [@e.cutino](#):
>
> I need for compliance reasons to avoid the OS exit

It seems to me that you cannot meet your compliance requirement if the desktop exists underneath Vision. (Also exposed if Vision **crashes**.)

Last I checked, the Windows desktop is implemented by `explorer.exe`, and Windows won't run without it.

> [@e.cutino](#):
>
> I see the point about Windows 11, not my/our choice

You should pass on to whomever made that choice that they are interfering with your ability to comply in a _reliable_ fashion.

---

<div class="post-metadata">

**Author:** ![dkhayes117](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/dkhayes117/32/68344_2.png) [@dkhayes117](https://forum.inductiveautomation.com/u/dkhayes117)\
**Post date:** [January 14, 2025, 3:38pm UTC](https://forum.inductiveautomation.com/t/avoid-os-exit-from-login-screen/100860/8 "2025-01-14T15:38:24Z")

</div>

> [@pturmel](#):
>
> Menubar functionality doesn't exist before login.

Right, just an FYI for @e.cutino

> [@pturmel](#):
>
> It seems to me that you cannot meet your compliance requirement if the desktop exists underneath Vision. (Also exposed if Vision **crashes**.)

Excellent point

---

<div class="post-metadata">

**Author:** ![e.cutino](https://avatars.discourse-cdn.com/v4/letter/e/e5b9ba/32.png) [@e.cutino](https://forum.inductiveautomation.com/u/e.cutino)\
**Post date:** [January 14, 2025, 3:41pm UTC](https://forum.inductiveautomation.com/t/avoid-os-exit-from-login-screen/100860/9 "2025-01-14T15:41:03Z")

</div>

Thx Phil. Indeed: why the possibility to exit at OS is shown only if the vision session is un full screen? In windowed mode, there is not. It would not be possible to manage that by an option show/no show?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [January 14, 2025, 4:08pm UTC](https://forum.inductiveautomation.com/t/avoid-os-exit-from-login-screen/100860/10 "2025-01-14T16:08:44Z")

</div>

In windowed mode, there is always the outer frame supplied by the OS, so you cannot stop exit. The exit on the login page is superfluous. (And I bet Alt-F4 works in all cases.)

With a custom Xsession, no matter how you kill Vision, you safely log out.

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [January 14, 2025, 4:14pm UTC](https://forum.inductiveautomation.com/t/avoid-os-exit-from-login-screen/100860/11 "2025-01-14T16:14:20Z")

</div>

There is a [Windows Kiosk mode](https://learn.microsoft.com/en-us/windows/iot/iot-enterprise/customize/kiosk-mode), though it appears to come with a grab bag of random restrictions, including only working on one very particular 'flavor' of Windows, apparently, so your mileage may vary.

Anything else we do in software **can** be defeated by a sufficiently malicious/bored/intrepid operator. You need your OS to be helping you with this; even if you managed to hide the OS framing and any other _visible_ means to exit the session, Ctrl + Alt + Del is an OS level interrupt and allows the person in front of the computer to terminate any process.

---

<div class="post-metadata">

**Author:** ![e.cutino](https://avatars.discourse-cdn.com/v4/letter/e/e5b9ba/32.png) [@e.cutino](https://forum.inductiveautomation.com/u/e.cutino)\
**Post date:** [January 14, 2025, 4:28pm UTC](https://forum.inductiveautomation.com/t/avoid-os-exit-from-login-screen/100860/12 "2025-01-14T16:28:32Z")

</div>

Thx all. It is a touchscreen, so no keyboard, no USB connected.

And I need to go the standard login in order to manage the password expiration. Perfectly managed via Ignition, also with internal user source.

@Phil: the point is exactly the opposite -\> in fullscreen mode it is needed to avoid the exit to OS. Honestly I thing that having the possibility to stop the exit hiding the cross would be beneficial for "normal" operator.... The matter is not protecting the system from malicious approaches (different), indeed the operator can click by mistake and jumping out. That should be avoided

---

<div class="post-metadata">

**Author:** ![michael.flagler](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/michael.flagler/32/26272_2.png) [@michael.flagler](https://forum.inductiveautomation.com/u/michael.flagler)\
**Post date:** [January 14, 2025, 5:33pm UTC](https://forum.inductiveautomation.com/t/avoid-os-exit-from-login-screen/100860/13 "2025-01-14T17:33:05Z")

</div>

If you use thin clients with remote desktop services, I don't remember the exact terminology but you can specify that a single app is launched with no desktop environment. I've set this up on thin clients managed by ThinManager with Wonderware in the past, and I'm guessing it would also work with Ignition but have never tried it. If a user does exit out of the app (or even if it crashes), it would automatically close the session and re-launch the session and app.
