Windows App Paths : créer un mot‑clé système pour lancer une application (cmd, PowerShell, Win+R)

Gagnez de précieuses secondes à chaque lancement : enregistrez un « mot‑clé » système (ex. xyz ou START xyz) qui ouvre immédiatement votre application depuis cmd, PowerShell ou Exécuter (Win + R) — sans déplacer l’EXE ni polluer le PATH.

Sommaire

Problématique

Vous souhaitez définir un mot‑clé personnalisé — par exemple taper START XYZ ou simplement xyz — qui lance directement l’exécutable de votre choix. Objectif : éviter d’avoir à copier l’EXE dans %SystemRoot%\System32 et ne pas modifier la variable d’environnement PATH globale (source fréquente de conflits et d’effets de bord).

Solution retenue : tirer parti de « App Paths »

Windows expose une clé de registre dédiée aux alias d’applications : App Paths. C’est la méthode native, la plus propre et la plus robuste pour créer un raccourci système qui fonctionne partout (cmd, PowerShell, boîte Exécuter, certains lanceurs graphiques).

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

Principe : vous créez une sous‑clé nommée comme l’exécutable cible (xyz.exe) et vous y enregistrez le chemin complet de l’application. Windows saura alors résoudre le nom court xyz en chemin absolu, sans passer par le PATH.

Étapes essentielles

  1. Ouvrez l’Éditeur du Registre (Win + Rregedit).
  2. Rendez‑vous dans :
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
  3. Créez une sous‑clé appelée xyz.exe (remplacez par le nom voulu).
  4. Dans cette sous‑clé :
    • Définissez la valeur (Default) (REG_SZ) avec le chemin complet de l’EXE :
      C:\Program Files\XYZ\xyz.exe
    • (Optionnel) Ajoutez la valeur Path (REG_SZ) contenant le dossier de l’app (ce dossier est temporairement ajouté au PATH uniquement pour le processus lancé).
      C:\Program Files\XYZ\

Une fois la clé créée, vous pouvez saisir xyz ou START xyz dans cmd, PowerShell ou la boîte Exécuter (Win + R) : Windows localise l’entrée App Paths et ouvre l’application correspondante. Dans PowerShell, Start-Process xyz fonctionne également.

Exemples prêts à l’emploi

Fichier .reg (administrateur, portée machine)

Collez le contenu suivant dans un fichier xyz-app-path.reg, puis double‑cliquez pour l’importer :

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\xyz.exe]
@="C:\Program Files\XYZ\xyz.exe"
"Path"="C:\Program Files\XYZ\" 

Variante portée utilisateur (sans droits admin)

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Paths\xyz.exe]
@="C:\Program Files\XYZ\xyz.exe"
"Path"="C:\Program Files\XYZ\" 

Cette variante ne nécessite pas d’élévation et ne s’applique qu’à l’utilisateur courant.

Commande reg.exe (cmd)

reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\App Paths\xyz.exe" ^
  /ve /t REG_SZ /d "C:\Program Files\XYZ\xyz.exe" /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\App Paths\xyz.exe" ^
  /v Path /t REG_SZ /d "C:\Program Files\XYZ" /f

Script PowerShell (définition fiable de la valeur par défaut)

$key = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\App Paths\xyz.exe'
New-Item -Path $key -Force | Out-Null

# La valeur "(par défaut)" n'a pas de nom ; on passe une chaîne vide '' via .NET

$rk = (Get-Item $key).OpenSubKey('', $true)
$rk.SetValue('', 'C:\Program Files\XYZ\xyz.exe', [Microsoft.Win32.RegistryValueKind]::String)
$rk.SetValue('Path', 'C:\Program Files\XYZ', [Microsoft.Win32.RegistryValueKind]::String)
$rk.Close() 

Vérifier le fonctionnement

  • Dans cmd, tapez : xyz puis Entrée.
  • Dans PowerShell, essayez : Start-Process xyz ou simplement xyz.
  • Dans Exécuter (Win + R) : saisissez xyz puis Entrée.

Si l’application s’ouvre, votre mot‑clé est opérationnel. Si ce n’est pas le cas, consultez la section « Dépannage » ci‑dessous.

Informations complémentaires utiles

BesoinMéthode / Remarque
Portée utilisateur uniquementÉcrire dans HKCU\Software\Microsoft\Windows\CurrentVersion\App Paths au lieu de HKLM.
Alternative sans registrePlacer un fichier xyz.cmd contenant start "" "C:\Program Files\XYZ\xyz.exe" dans un dossier déjà référencé par le PATH, ou ajouter ce dossier au PATH utilisateur.
Alias temporairedoskey xyz="C:\Program Files\XYZ\xyz.exe" $* crée un alias valable pour la session courante du terminal. Pour le rendre permanent, script d’initialisation nécessaire.
Pas de redémarrage requisLes nouvelles entrées App Paths sont prises en compte immédiatement par les nouvelles sessions de console.
Nom sans extensionLe nom de la sous‑clé doit inclure .exe (ex. xyz.exe). À l’appel, vous pouvez taper xyz (sans .exe).
Prise en charge des argumentsTout ce qui suit votre mot‑clé est transmis à l’EXE : xyz --help, xyz "C:\fichier.txt", etc.
Priorité vs PATHEn règle générale, un App Path est prioritaire sur une résolution par PATH pour le même nom d’EXE, ce qui évite les collisions de versions.

Comparatif rapide des méthodes

ApprochePortéeDroits requisImpact sur PATHArgumentsPersistanceCommentaires
App PathsUtilisateur (HKCU) ou Machine (HKLM)HKCU : non / HKLM : adminAucun (option Path locale au process)OuiJusqu’à suppression de la cléSolution native, propre, sans copie de fichiers.
Fichier .cmd/.batSelon emplacementNon, sauf dossiers protégésDoit être dans un dossier du PATHOuiJusqu’au retrait du scriptSimple mais nécessite gérer un dossier « bin ».
doskeySession du terminalNonAucunOui ($*)TemporaireIdéal pour tests ponctuels.
Modifier PATHUtilisateur ou SystèmeUtilisateur : non / Système : adminGlobal (risque de conflits)OuiPersistantPeut casser d’autres apps si mal géré.

Bonnes pratiques de nommage

  • Clair et court : préférez xyz ou mytool à mon-super-outil-2025.
  • Stable : évitez d’intégrer le numéro de version (node18) si vous comptez le maintenir dans le temps.
  • Sans espaces : limitez la friction côté terminal.
  • Un mot‑clé = une cible : pas de doublons pour éviter les surprises.

Cas d’usage concrets

  • Applications portables : référencez C:\Tools\MyPortable\mytool.exe via App Paths et utilisez mytool partout sans toucher au PATH.
  • Versions multiples : créez python312 et python313 qui pointent vers chaque version installée.
  • Outils d’équipe : normalisez un mot‑clé commun (monoutil) et déployez-le à l’identique sur tous les postes.
  • Raccourcis graphiques : grâce à l’option Path, l’application trouve ses DLL sans élargir PATH système.

Déploiement et automatisation (IT/entreprise)

  • GPO / GPP : poussez des clés sous HKLM\...\App Paths via Preferences > Windows Settings > Registry.
  • Gestion de configuration : scripts PowerShell idempotents (création si absent, mise à jour si chemin changé).
  • CI des postes dev : un job post‑install qui alimente la liste des App Paths clés (navigateur, IDE, shells, outils maison).

Architecture 32/64 bits : points d’attention

Sur un Windows 64 bits, la vue registre est redirigée pour les processus 32 bits. Pour une compatibilité maximale (notamment si des outils 32 bits doivent lancer votre mot‑clé), vous pouvez écrire les deux entrées :

reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\xyz.exe" /ve /t REG_SZ /d "C:\Program Files\XYZ\xyz.exe" /f
reg add "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\App Paths\xyz.exe" /ve /t REG_SZ /d "C:\Program Files\XYZ\xyz.exe" /f

Dans la majorité des usages modernes (cmd/PowerShell 64 bits), une seule entrée côté 64 bits suffit, mais dupliquer peut éviter des surprises avec des lanceurs 32 bits hérités.

Sécurité, UAC et empreinte système

  • UAC : App Paths ne contourne pas le contrôle de compte d’utilisateur. Si l’EXE nécessite des privilèges élevés, une élévation sera demandée.
  • Moindre privilège : préférez HKCU quand c’est possible (zéro admin, pas d’impact machine).
  • Surface d’attaque : n’enregistrez que des chemins de confiance et évitez les emplacements modifiables par des utilisateurs non autorisés.
  • Nettoyage : supprimez les clés orphelines lors de la désinstallation de l’application.

Dépannage : erreurs courantes et correctifs

  1. « xyz n’est pas reconnu » :
    • Fermez et rouvrez la session du terminal (les nouvelles sessions prennent en compte aussitôt).
    • Vérifiez le nom de la sous‑clé (xyz.exe avec .exe).
    • Contrôlez le chemin dans (Default) : existe‑t‑il et est‑il accessible ?
    • Essayez START xyz (ShellExecute) pour distinguer d’un problème de résolution directe.
  2. Conflit avec un binaire existant :
    • Choisissez un autre mot‑clé (ex. xyzapp), ou supprimez l’entrée conflictuelle.
  3. L’application ne trouve pas ses DLL :
    • Ajoutez la valeur Path pointant vers son dossier (ajout temporaire au PATH uniquement pour ce process).
  4. Chemin avec espaces :
    • La valeur (Default) peut contenir des espaces sans guillemets ; Windows sait gérer le chemin complet enregistré. Si vous créez un .cmd, pensez aux guillemets.
  5. Droits insuffisants :
    • Utilisez la variante HKCU ou exécutez l’opération « En tant qu’administrateur » pour HKLM.

Maintenance : inventaire, sauvegarde, retrait

Lister vos App Paths (PowerShell)

$roots = @(
  'HKCU:\Software\Microsoft\Windows\CurrentVersion\App Paths',
  'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths'
)

$entries = foreach ($r in $roots) {
if (Test-Path $r) {
Get-ChildItem $r | ForEach-Object {
$exe = Split-Path $*.Name -Leaf
$def = (Get-ItemProperty $*.PsPath).'(default)'
$pth = (Get-ItemProperty $_.PsPath).Path
[PSCustomObject]@{ Root=$r; Exe=$exe; Default=$def; Path=$pth }
}
}
}
$entries | Sort-Object Exe | Format-Table -AutoSize 

Sauvegarder / restaurer

rem Sauvegarde
reg export "HKCU\Software\Microsoft\Windows\CurrentVersion\App Paths" "%USERPROFILE%\Desktop\AppPaths-HKCU.reg" /y
reg export "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths" "%USERPROFILE%\Desktop\AppPaths-HKLM.reg" /y

rem Restauration (double-clic sur les .reg exportés) 

Supprimer un alias

reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\App Paths\xyz.exe" /f

FAQ express

Dois‑je absolument nommer la sous‑clé avec .exe ?
Oui. Le nom de la sous‑clé doit correspondre au nom d’exécutable attendu par Windows (ex. xyz.exe). Ensuite, à l’utilisation, xyz suffit.

Est‑ce que cela marche dans l’Explorateur ?
Oui : dans la barre d’adresse ou la boîte Exécuter, tapez xyz ; l’application s’ouvrira.

Puis‑je passer des paramètres ?
Oui : tout ce qui suit le mot‑clé est transmis à l’EXE (xyz --version, xyz "C:\doc.txt", etc.).

Pourquoi préférer App Paths à PATH ?
Parce que vous visez un binaire précis, sans exposer globalement son dossier au système, ce qui réduit le risque de collisions et de « shadowing » d’outils.

Checklist de mise en place

  • Choisir un mot‑clé clair (xyz).
  • Créer xyz.exe sous App Paths (HKCU ou HKLM selon le besoin).
  • Définir (Default) avec le chemin complet vers l’EXE.
  • (Optionnel) Ajouter Path si des DLL/ressources locales sont nécessaires.
  • Valider avec xyz dans cmd/PowerShell et Win + R.
  • Documenter l’alias (README d’équipe, script d’install).

Conclusion

La clé App Paths est le moyen le plus propre, le plus flexible et le plus sûr pour enregistrer des mots‑clés système sous Windows. Elle vous évite de toucher au PATH, de déplacer des exécutables ou de multiplier des .cmd d’appoint. Que vous soyez utilisateur avancé, développeur ou admin système, adoptez‑la pour des lancements d’applications instantanés, prévisibles et faciles à maintenir.

Sommaire