Windows11: Make every systray icon visible by default
In Windows 10, to always show all icons and notifications on the taskbar, it was enough to create the
|
1 2 |
EnableAutoTray property with a value 0 in HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer |
In Windows 11, there is no longer a way to set all icons to be displayed. The display is configured on a per-icon basis. One strategy is to create a script that checks which icons are hidden and sets them to be displayed.
|
1 2 3 4 5 6 7 8 9 10 11 12 |
$Key = 'Registry::HKCU\Control Panel\NotifyIconSettings' $Property = 'IsPromoted' If ( Test-Path -LiteralPath $Key -PathType 'Container' ) { Get-ChildItem -LiteralPath $Key | Where-Object -FilterScript { ( $PSItem.Property -notcontains $Property ) -or ( $PSItem.GetValue( $Property ) -eq 0 ) } | ForEach-Object { Set-ItemProperty -LiteralPath ( $PSItem.PSPath ) -Name $Property -Value 1 -Force } } |
If you do want to hide all the icons, the solution would be:
|
1 2 3 4 5 6 7 8 9 10 11 |
$Key = 'Registry::HKCU\Control Panel\NotifyIconSettings' $Property = 'IsPromoted' If ( Test-Path -LiteralPath $Key -PathType 'Container' ) { Get-ChildItem -LiteralPath $Key | Where-Object -FilterScript { $PSItem.GetValue( $Property ) -eq 1 } | ForEach-Object { Set-ItemProperty -LiteralPath ( $PSItem.PSPath ) -Name $Property -Value 0 -Force } } |
Then you can schedule a task, which will trigger the script at a 1 minute interval, in the context of the local group Users ==> SID S-1-5-32-545.