This is an issue with timing where profile data, such as pinned Taskbar items, are restored via portability or ProfileDisk prior to all FlexApp packages playing back. If a restored Taskbar shortcut references a target in a packaged application and that FlexApp has not yet played back, it ends up pointing to a location that doesn't exist. Once the respective FlexApp completes playback, the shortcut becomes functional again but the icon is not updated.
To force a refresh of the Taskbar, a restart of the OS shell can be performed. In Windows 10, this was accomplished by simply restarting Explorer, however, doing so in Windows 11 causes the userinit process to run again and will result in ProfileUnity being initialized a second time.
A refresh of the Taskbar in Windows 11 is still possible but requires restarting the Shell Infrastructure Host process (sihost.exe). Once the process is terminated, a black screen is briefly displayed until the process automatically restarts itself, which generally takes about a second.
The Application Launcher rule below refreshes the shell by performing the following:
- Checks for FlexApp playback processes (lwl_userapp_player64.exe) running as the current user.
- If none are detected, the check continues.
- Once detected, waits for all playback processes to complete.
- Upon completion of the final process, terminates the shell process (sihost.exe) running as the current user.
Rule details:
Filespec:
%SystemRoot%\System32\cmd.exe
Arguments:
/c powershell -executionpolicy bypass -windowstyle hidden -noninteractive -nologo -NoProfile "while (!(Get-Process -Name 'lwl_userapp_player64' -IncludeUserName -ErrorAction SilentlyContinue | Where-Object {$_.UserName -like \"*$env:USERNAME*\"})) {Start-Sleep -Seconds 1}; while (Get-Process -Name 'lwl_userapp_player64' -IncludeUserName -ErrorAction SilentlyContinue | Where-Object {$_.UserName -like \"*$env:USERNAME*\"}) {Start-Sleep -Seconds 1}; Get-Process -Name 'sihost' -IncludeUserName | Where-Object {$_.UserName -like \"*$env:USERNAME*\"} | Stop-Process -Force"Timing:
During Configuration Execution
Additional Settings:
Hide Progress During Execution - Disabled Run Asynchronously - Enabled Execute without Elevation - Disabled