Powershell 5 est révolu
Révolu, et ce complètement. On en a encore besoin puisque tous les modules Active Directory et autres du genre ne fonctionnent pas encore sous Powershell 7, mais bon dieu que c’est désuet. Puisque toute la manipulation d’un serveur Windows Server Core se fait dans Powershell, autant mieux se munir du meilleur.
Powershell Core sous Windows Server Core
Remote Desktop
Installer Powershell comme environnement de base en général est couvert un peu partout sur le web, mais je vais le répéter ici. Ça se fait via le registre de Windows, avec un utilsateur aux droits d’administrateur, comme suit :
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\' -Name Shell -Value 'pwsh.exe'
Suivi d’un redémarrage.
Powershell Remoting
C’est bien beau d’installer PS Core pour les sessions visuelles. Mais la beauté et la puissance de PS vient de sa capacité à se prendre plus-ou-moins pour SSH, en fournissant une interface ligne-de-commande efficace.
Les cmdlets enter-pssession et new-pssession possèdent une option nommée -Configuration, qui permet de choisir l’environnement distant pour la connection. Une valeur de powershell.<version>[.<sous-version>] démarre la version de Powershell désirée.
Non seulement ça, mais on peut demander une version de Powershell Core automatiquement :
# When remoting, default to running PowerShell Core v7.x on the
# the target machines:
$PSSessionConfigurationName = 'PowerShell.7'
Ça nous empêche pas d’utiliser l’option pour demander Powershell 5.
Et si ça marche pas ?
S’agit de rouler les commandes suivantes (en ligne-de-commande ou en Remote Desktop):
cd <chemin d'accès de Powershell Core>
.\Install-PowerShellRemoting.ps1 -PowerShellHome .
Ce qui ajoute une valeur powershell.<version>, par exemple powershell.7.1.1 à l’option -Configuration du cmdlet enter-pssession/new-pssession.
enter-pssession -ComputerName paslemien -Credential $cred -Configuration powershell.7.1.1