microsoft / PowerToys

Windows system utilities to maximize productivity
MIT License
110.79k stars 6.53k forks source link

PowerLauncher.exe causes other running MSI installers to fail to set up the shortcut #34391

Open avjts opened 2 months ago

avjts commented 2 months ago

Microsoft PowerToys version

0.80 or 0.83

Installation method

GitHub

Running as admin

Yes

Area(s) with issue?

PowerToys Run

Steps to reproduce

This is a race bug, so there are machines that do not experience it and those that are highly repeatable. In our case we saw it on many Windows 10 Home machines and on Windows 11 sandbox, more often during upgrade, rarely during clean install, and using msi installer rather than an exe bundle. To reproduce PowerToys.PowerLauncher.exe bug we need msi installer that installs an application that shows "toast notifications". Such app needs a shortcut with two extra attributes:

 <Shortcut ... >
   <ShortcutProperty Key="System.AppUserModel.ID" Value="..."/>
   <ShortcutProperty Key="{9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3}, 26" Value="..."/>
 </Shortcut>

There are many such apps out there, and I guess many of them experience the issue and have trouble pinpointing the root cause, e.g.: https://github.com/microsoft/WSL/issues/11276

Steps:

In the procmon log (screenshot below), you can see PowerLauncher.exe opens MyApp.lnk in share-read mode. Then during PowerLauncher is reading .lnk contents (50ms) two other processes try to access .lnk. Microsoft Defender queries the file and msiexec tries to set attributes in exclusive mode, and they are denied.

procmon-powerlauncher-bug

If you deactivate the "PowerToys Run," the problem will disappear.

Problably PowerLauncher.exe should postpone its actions a bit to allow msi installers to finish their job.

βœ”οΈ Expected Behavior

PowerLauncher.exe running in the background must not interfere msiexec installing shortcuts with shell attributes.

❌ Actual Behavior

PowerLauncher.exe running in the background opens shortcut files created by msiexec and blocks subsequent operations performed by msiexec.

Other Software

sample installer, that may help to reproduce the bug: https://github.com/avjts/powerlauncher-bug

similar-issues-ai[bot] commented 2 months ago

We've found some similar issues:

If any of the above are duplicates, please consider closing this issue out and adding additional context in the original issue.

Note: You can give me feedback by πŸ‘ or πŸ‘Ž this comment.