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.
Enfin, redémarrez le système :
Restart-Computer
Vous devriez obtenir le résultat suivant :