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.
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
- Ouvrez l’Éditeur du Registre (Win + R →
regedit
). - Rendez‑vous dans :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
- Créez une sous‑clé appelée
xyz.exe
(remplacez par le nom voulu). - 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\
- Définissez la valeur (Default) (REG_SZ) avec le chemin complet de l’EXE :
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 simplementxyz
. - 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
Besoin | Méthode / Remarque |
---|---|
Portée utilisateur uniquement | Écrire dans HKCU\Software\Microsoft\Windows\CurrentVersion\App Paths au lieu de HKLM. |
Alternative sans registre | Placer 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 temporaire | doskey 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 requis | Les nouvelles entrées App Paths sont prises en compte immédiatement par les nouvelles sessions de console. |
Nom sans extension | Le nom de la sous‑clé doit inclure .exe (ex. xyz.exe ). À l’appel, vous pouvez taper xyz (sans .exe ). |
Prise en charge des arguments | Tout ce qui suit votre mot‑clé est transmis à l’EXE : xyz --help , xyz "C:\fichier.txt" , etc. |
Priorité vs PATH | En 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
Approche | Portée | Droits requis | Impact sur PATH | Arguments | Persistance | Commentaires |
---|---|---|---|---|---|---|
App Paths | Utilisateur (HKCU) ou Machine (HKLM) | HKCU : non / HKLM : admin | Aucun (option Path locale au process) | Oui | Jusqu’à suppression de la clé | Solution native, propre, sans copie de fichiers. |
Fichier .cmd/.bat | Selon emplacement | Non, sauf dossiers protégés | Doit être dans un dossier du PATH | Oui | Jusqu’au retrait du script | Simple mais nécessite gérer un dossier « bin ». |
doskey | Session du terminal | Non | Aucun | Oui ($* ) | Temporaire | Idéal pour tests ponctuels. |
Modifier PATH | Utilisateur ou Système | Utilisateur : non / Système : admin | Global (risque de conflits) | Oui | Persistant | Peut casser d’autres apps si mal géré. |
Bonnes pratiques de nommage
- Clair et court : préférez
xyz
oumytool
à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 utilisezmytool
partout sans toucher au PATH. - Versions multiples : créez
python312
etpython313
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
- « 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.
- Conflit avec un binaire existant :
- Choisissez un autre mot‑clé (ex.
xyzapp
), ou supprimez l’entrée conflictuelle.
- Choisissez un autre mot‑clé (ex.
- L’application ne trouve pas ses DLL :
- Ajoutez la valeur
Path
pointant vers son dossier (ajout temporaire au PATH uniquement pour ce process).
- Ajoutez la valeur
- 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.
- La valeur (Default) peut contenir des espaces sans guillemets ; Windows sait gérer le chemin complet enregistré. Si vous créez un
- 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.