Forum Discussion
"Show all icons in system tray" option in windows11
- Dec 19, 2022
To always show all the Icons in the System Tray or Notification area of Windows 11/10, follow these steps:
1. Press Win+R to open the Run prompt.
2. Enter this value: explorer shell:::{05d7b0f4-2121-4eff-bf6b-ed3f69b894d9}
3. Tick the Always show all icons and notifications on the taskbar checkbox.
4. Click the OK button.Hope this helps everyone!
I've been looking into this issue for an enterprise solution.
IsPromoted = 1 in the reg is essentially what is being set to unhide each icon, which is also what gets set when this is changed manually.
I have come up with similar powershell, my intention is to set it as a scheduled task deployed from GPP to run every x minutes.
Note that you can run this as a simpler single powershell command using a wildcard * at the end of the path, without then needing the get command (although the result is the same).
Set-ItemProperty -Path "HKCU:\Control` Panel\NotifyIconSettings\*" -Name 'IsPromoted' -Value 1
The reason it needs to run every x minutes (and the reason home users are finding the Windows 11 behaviour flakey) is because many of these icons are generated dynamically under certain conditions - therefore not only is every users icon uniquely identified, but the app icon you unhid yesterday may well be a completely different instance of that icon tomorrow. So the result is that the 'new' copy of that icon is default hidden each time, so appears to 'hide' again to the user.
So at the moment my best effort it to "capture" any icons currently running, to restore the taskbar as unhidden every x minutes.
All because Microsoft have forgotten how task bar icons are used (ironically including most of their own - such as Teams, Outlook, and Defender).
Update -
Struggled to get this concept to run as a Scheduled Task in Enterprise environment. 😕 It works, but its messy. It needs to run in the Users group context I believe in order to successfully access the HKCU unfortunately (SYSTEM doesn't seem to work), and this means every user would need Log On As Batch permissions (not viable for us). There's also an issue with it 'flashing' the powershell prompt briefly each time it runs, which isn't really acceptable on a fast schedule. This is the Scheduled Task command (note special character between "Control Panel") if anyone wants it - set to run as Users group (or as your own user if you're on a personal device).
%SystemRoot%\syswow64\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -Command Set-ItemProperty -path "HKCU:\Control` Panel\NotifyIconSettings\*" -Name "IsPromoted" -Value 1
Instead I'm probably going to look at just running the first powershell as a login and logoff script for each user from GPO, so it'll at least set icons unhidden that exist on logon and logoff (but it will miss any that only intermittently appear (such as Outlook envelope notification) and any that recreate dynamically. I'm hoping it will catch the ones we need most.
Conclusion (& Second Update) -
Can confirm running my first powershell command as a .ps1 script in Login & Logoff Powershell script tab in GPO works pretty well for Enterprise environment. Home users could do the same from Local Group Policy.
It won't capture every icon but it should capture anything that's fairly persistent.
It'll have to do, pig, it'll have to do.
try this command.. seems to work well and switches on all the icons
powershell -command set-ItemProperty -Path 'HKCU:\Control" Panel\NotifyIconSettings\*' -Name 'IsPromoted' -Value 1