Je suis attaché à la belle couleur bleue de la fenêtre PowerShell lorsque vous la lancez à l’aide d’un des raccourcis préinstallés. Cependant, si vous lancez manuellement powershell.exe, vous n'obtenez pas ces couleurs, vous obtenez du noir/blanc :(
En effet, les paramètres par défaut sont définis dans le fichier de raccourci (.lnk):
J'ai une entrée "Invite PowerShell ici" dans le menu contextuel de l'Explorateur et j'aimerais qu'elle lance PowerShell avec les mêmes couleurs agréables que le raccourci habituel; le noir est nul, et il est déroutant d’avoir des fenêtres de couleurs différentes (surtout lorsque j’ai des fenêtres de commande à l’ancienne école qui sont aussi souvent noires!).
J'ai trouvé deux problèmes pour essayer de régler cela jusqu'à présent:
Existe-t-il un moyen de lancer PowerShell à partir d'une ligne de commande (que je peux incorporer dans le registre en tant qu'élément de menu contextuel de l'Explorateur) qui utilisera les mêmes paramètres que le raccourci?
Voici un moyen très simple:
Démarrer -> Exécuter "sysdm.cpl" -> Avancé -> Variables d'environnement
Faites défiler les variables système, double-cliquez sur PATHEXT
Ajouter .LNK; comme illustré ci-dessous:
Copy-Item "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Windows PowerShell\Windows PowerShell.lnk" "C:\Windows\System32\powershell.lnk"
Vous pouvez personnaliser davantage le fichier .lnk dans C:\Windows\System32 à votre guise.
Veuillez noter que cela ne fonctionnera que parce que vous avez ajouté le .lnk à la liste des extensions acceptables ET que c:\windows\system32 est le premier élément du chemin de recherche (variable système PATH) par défaut.
Cela ne personnalisera pas la console si elle est lancée via cmd.exe.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Shell\PowerShellHere\command]
@="C:\\WINDOWS\\system32\\cmd.exe /c start powershell -NoExit \"cd '%1';(get-Host).ui.rawui.windowtitle = 'Oompa Loompa'\""
[HKEY_CLASSES_ROOT\Directory\Shell\PowerShellHere\command]
@="C:\\WINDOWS\\system32\\cmd.exe /c start powershell -NoExit \"cd '%1';(get-Host).ui.rawui.windowtitle = 'Oompa Loompa'\""
J'utilise cmd.exe pour appeler "start", ce qui lancera le fichier powershell.lnk et transmettra le répertoire de travail actuel en argument. Ne semble pas fonctionner depuis la barre d'adresse. J'aurais dû rentrer chez moi il y a 45 minutes, mais votre problème était amusant à résoudre! :)
Points bonus: Vous pouvez enfiler les commandes envoyées à Powershell. Donc, si vous souhaitez modifier l'attribut title de la console Powershell:
\"cd '%1';(get-Host).ui.rawui.windowtitle = 'Oompa Loompa'"
Ajoutez simplement un point-virgule entre les commandes.
Bon bombardement
Modifiez votre script de profil (indiqué par $ profile) et définissez vous-même les couleurs souhaitées:
# set regular console colors
[console]::backgroundcolor = "darkmagenta"
[console]::foregroundcolor = "darkyellow"
# set special colors
$p = $Host.privatedata
$p.ErrorForegroundColor = "Red"
$p.ErrorBackgroundColor = "Black"
$p.WarningForegroundColor = "Yellow"
$p.WarningBackgroundColor = "Black"
$p.DebugForegroundColor = "Yellow"
$p.DebugBackgroundColor = "Black"
$p.VerboseForegroundColor = "Yellow"
$p.VerboseBackgroundColor = "Black"
$p.ProgressForegroundColor = "Yellow"
$p.ProgressBackgroundColor = "DarkCyan"
# clear screen
clear-Host
J'ai trouvé très utile d'utiliser concfg tool et scoop pour installer des couleurs et des polices pour Powershell:
Installez scoop:
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
Installez concfg:
scoop install concfg
Installer Thème Solarisé :
concfg import solarized
Ça y est, merci aux auteurs!
Cliquez sur le menu Système (icône PowerShell en haut à gauche de la fenêtre), puis sur Valeurs par défaut. Vous pouvez modifier les couleurs par défaut ici et elles seront respectées par la commande Invite ici de PowerShell.
La bonne façon de faire est avec le registre
cd hkcu:/console
$0 = '%systemroot%_system32_windowspowershell_v1.0_powershell.exe'
ni $0 -f
sp $0 ColorTable00 0x00562401
sp $0 ColorTable07 0x00f0edee
regedit
pour ouvrir l'éditeur de registreHKEY_CURRENT_USER > CONSOLE
et sauvegardez le dossier en entier en exportant au cas oùRedémarrez votre Powershell, la palette de couleurs doit avoir été réinitialisée aux valeurs par défaut.
Remarque: Si vous souhaitez conserver certains paramètres liés à PowerShell (ou à une invite de commande, Git Bash, etc.), veuillez explorer davantage le dossier Console pour supprimer les clés appropriées
C'était ma solution (définir les couleurs dans un script lancé en tant que système). Peut-être plus que ce dont vous avez besoin (voir ma propre réponse):
Sur la base de @ rex-hardin excellent answer , j’ai amélioré le contenu de regedit ici pour ajouter une icône et utiliser les arguments natifs de PowerShell pour démarrer dans le bon chemin.
Le menu contextuel est activé lorsque vous cliquez avec le bouton droit de la souris sur l’arrière-plan d’un répertoire et lorsque vous cliquez directement sur une icône de répertoire.
Bien sûr, nous exécutons également une console avec un fond bleu, exactement comme celle par défaut.
.LNK
" à la variable d'environnement %PATHEXT%
Cela permet au système d'exécuter des fichiers avec l'extension .lnk
(extension masquée pour les raccourcis)
powershell
.Cela permet à la commande powershell
de lancer notre raccourci à partir du dossier system32
(qui se trouve dans %PATH%
).
Utilisez Explorer (copier + renommer) ou la ligne de commande ci-dessous:
Copy-Item "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Windows PowerShell\Windows PowerShell.lnk" "C:\Windows\System32\powershell.lnk"
powershell_here.reg
et exécutez-le.powershell_here.reg
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\directory\background\Shell\PowerShell]
@="PowerShell Here"
"Icon"="%SystemRoot%\\system32\\WindowsPowerShell\\v1.0\\powershell.exe"
[HKEY_CLASSES_ROOT\directory\background\Shell\PowerShell\command]
@="cmd.exe /c start powershell -NoExit -NoProfile -Command Set-Location -LiteralPath '%V'"
[HKEY_CLASSES_ROOT\directory\Shell\PowerShell]
@="PowerShell here"
"Icon"="%SystemRoot%\\system32\\WindowsPowerShell\\v1.0\\powershell.exe"
[HKEY_CLASSES_ROOT\directory\Shell\PowerShell\command]
@="cmd.exe /c start powershell -NoExit -NoProfile -Command Set-Location -LiteralPath '%L'"