Have you ever tried to open a developer tool like Python or Node.js, only to find that a different app launches instead? That’s often due to App Execution Aliases.
This is a little-known feature in Windows that can silently override your command-line behavior.
What Are App Execution Aliases?
Windows 10 and 11 include alias files that map simple commands (like python.exe
) to Microsoft Store apps. This sounds convenient, but often causes conflicts when multiple versions are installed.
For example:
-
You install Python via Anaconda or manually
-
Typing
python
in CMD launches the Microsoft Store version instead
How to View and Manage Aliases
Go to:
Settings → Apps → Advanced App Settings → App Execution Aliases
Here you’ll see a list of registered aliases and toggle switches to enable or disable them.
Common entries:
-
python.exe
-
node.exe
-
code.exe
(for VS Code)
Best Practices for Developers
-
Disable aliases you don’t use. If you installed Python manually, disable the alias so your environment variable takes precedence.
-
Use absolute paths in scripts or configure your PATH environment carefully.
-
If you use multiple versions of the same tool (e.g., Python 3.9 and 3.11), manage them via version managers like
pyenv
(Windows) ornvm
for Node.js.
Preventing Conflicts in Terminal
When using PowerShell or Windows Terminal:
-
Always verify which version runs by typing
where python
orwhere node
-
Adjust PATH manually if needed to prioritize the desired version
App Execution Aliases sound helpful, but in many development setups they only get in the way. Disable what you don’t need, and your tools will work exactly as expected.