15/11/2024

Windows Server

WS 2012 Core – Ouvrir automatiquement PowerShell

I. Présentation

Sous Windows Server en mode Core, c'est étonnant, mais ce n'est pas une console PowerShell qui s'ouvre au démarrage du serveur, mais bien une Invite de commandes (cmd) classique. Dommage, car sans PowerShell nous n'irons pas bien loin... Il est bien sûr possible de lancer la console PS grâce à "powershell.exe", mais ce serait plus agréable de l'avoir par défaut.

Pour cela, suivez ce tutoriel qui explique comment procéder. En fait, c'est tout simple il suffit de modifier une valeur dans le registre.

II. Procédure

Pour cela, nous allons procéder depuis le serveur en local, via une console PowerShell.

Note : La procédure est réalisable en se connectant à distance au registre du serveur, si sa configuration le permet.

Une fois que vous y êtes, commencez par définir une variable qui contient le chemin vers la clé de registre. Nous l'appellerons $Path :

$Path = "Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\winlogon"

Vous remarquerez que l'on touche la clé "WinLogon" correspondante à l'ouverture de session sous Windows. Sur une version de Windows avec interface graphique, c'est l'Explorer (explorer.exe) qui est exécuté afin d'afficher l'interface graphique.

Ensuite, on modifie la propriété de la clé Shell pour indiquer que l'on souhaite ouvrir PowerShell.exe à l'ouverture de session :

Set-ItemProperty -Confirm  -Path $Path -Name Shell -Value 'PowerShell.exe -noExit -Command "$psversiontable"'

Note : Le fait d'ajouter l'exécution de la commande $psversiontable permet d'ajouter un récapitulatif des versions utilisées sur ce système, notamment pour PowerShell. En fait, ceci est une variable prédéfinie qui contient des informations de version. C'est intéressant d'afficher cette information pour qu'une personne qui se connecte sur un serveur sache directement les versions installées et donc les commandes disponibles. La présence de l'option "noExit" permet d'indiquer que l'on ne ferme pas la console PowerShell après exécution de la commande.

psopen1

Enfin, redémarrez le système :

Restart-Computer

Vous devriez obtenir le résultat suivant :

psopen2

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.