Basculer entre les modes « Core » – « MSI » – « GUI » sous Windows Server 2012 et 2012 R2

Durant l’installation de Windows Server 2008 et 2008 R2, vous pouvez choisir entre une installation Minimale « Mode Core » et une installation Complète « Mode GUI » (voir image ci-après), mais aucune conversion ni basculement entre les deux modes n’est possible; le passage du mode Core au mode GUI nécessite une réinstallation complète « from scratch » de Windows Server 2008 ou 2008 R2.

IMG27

Ce n’est plus le cas sous Windows Server 2012 ou 2012 R2, en effet parmi les nouveautés les plus intéressantes de cette dernière version « majeure »  de Windows Server est la possibilité de basculer entre les deux modes « Core <=> GUI ».

C’est vrai que durant l’installation de Windows Server 2012 ou 2012 R2 (selon les sources d’installation), vous êtes invité à choisir entre les mêmes 2 options d’installation « Core : Installation minimale  » ou « GUI : Serveur avec une interface graphique utilisateur », comme montré ci-après

IMG26

En revanche, une fois déployé, Windows Server 2012 ou 2012 R2 intègre 2 fonctionnalités optionnelles que vous pouvez installer ou désinstaller pour basculer entre le mode « Core » et le mode « GUI ».

De plus, un nouveau mode est introduit : MSI pour Minimal Server Interface, ce qui peut être traduit en Français par : Interface de Serveur Minimal. 
Il s’agit d’un mode intermédiaire entre le mode « Core » et le mode « GUI », en effet le mode MSI est tout simplement une installation « Core » avec une couche graphique incluant :

> Le gestionnaire de serveur
> Toutes les consoles MMC
> L’environnement d’écriture de script intégré (PowerShell ISE)
> Certains outils du Panneau de configuration

Généralement pour basculer du mode « Core » au mode « MSI’ il suffit d’ajouter le package « Server-GUI-Mgmt-Infra » ce qui correspond à la fonctionnalité : Outils et infrastructure de gestion graphique (mode MSI)

Pour basculer vers le mode « GUI » depuis un mode « Core », un package est à ajouter en plus de Server-GUI-Mgmt-Infra, il s’agit Server-GUI-Shell qui correspond à la fonctionnalité : Shell graphique de serveur (mode GUI)

Notez qu’il y’a une dépendance entre les deux packages.

En gros, pour basculer entre les trois modes, il suffit d’ajouter ou supprimer une ou les deux fonctionnalités (en utilisant leurs noms de packages précédé de la cmdlette PowerShell Add-WindowsFeature ou Remove-WindowsFeature).

Pour vous faciliter la vie et simplifier cette procédure de conversion, j’ai développé un script PowerShell vous permettant de basculer en quelques secondes d’un mode à un autre, ci-après le contenu du script :

# Ce script vous permet de basculer entre les modes "Core" - "MSI" - "GUI" sous Windows Server 2012 et 2012 R2.
# Il suffit de selectionner un numero d'option pour effectuer la conversion d'un mode a un autre.
# Auteur : Hicham KADIRI | MVP Windows Expert-IT Pro 
# Prerequis #1 : Windows PowerShell v2.0 | v3.0 | v4.0
# Prerequis #2 : Definissez la strategie d'execution PowerShell a Unrestricted : Set-ExecutionPolicy Unrestricted

function GetId ($id)
{
if ($id -like "[1234]")
{
switch ($id)
{
"1" {Add-WindowsFeature Server-Gui-Mgmt-Infra}
"2" {Add-WindowsFeature Server-Gui-Shell}
"3" {Add-WindowsFeature Server-Gui-Mgmt-Infra,Server-Gui-Shell}
"4" {Remove-WindowsFeature Server-Gui-Mgmt-Infra,Server-Gui-Shell}
}
}
else
{
Write-Warning -Message "Choix incorrect, reessayez !"
$id=Read-Host -Prompt "Entrez un numero pour selectionner une option"
GetId $id
}
}

$banner=@'
=======================================================================================
=== Basculer entre les modes "Core" - "MSI" - "GUI" | Windows Server 2012 & 2012 R2 ===
=======================================================================================
[1] Passer du mode "Core" au mode "MSI"
[2] Passer du mode "MSI" au mode "GUI"
[3] Passer du mode "Core" au mode "GUI"
[4] Passer du mode "GUI" au mode "Core"
'@


Write-Host $banner
$ID=Read-Host -Prompt "Entrez un numero pour selectionner une option"
GetId $id
write-host "Un redemarrage est requis pour que la conversion soit prise en compte, voulez-vous redemarrer maintenant?"

$Reboot = Read-Host -Prompt "[O] Oui [N] Non (la valeur par défaut est 'Non'"
if ($Reboot -eq "o" -or $Reboot -eq "oui") {Restart-Computer} else{"n"}

# Fin du script

Il est également disponible en téléchargement gratuit ici

Il suffit de l’exécuter et choisir un numero d’option pour basculer d’un mode à un autre (comme SConfig.exe)

Notez que la stratégie d’exécution doit être « Unrestricted » pour éviter tout blocage d’exécution du script.

Voir instructions ci-après pour utiliser correctement ce script :

1. Clic droit sur le script > Exécuter avec PowerShell

PS

2. Si la stratégie d’exécution est autre que « Unrestricted » (RemoteSigned par exemple), le message d’avertissement suivant s’affiche :

3. Il suffit de saisir Oui ou O pour confirmer l’exécution du script

4. Une fois exécuté, le menu suivant s’affiche

5. Il faut saisir un numéro d’option (selon le mode depuis et vers lequel vous voulez switcher), veillez à bien saisir un numero d’option entre 1 à 4, si vous choisissez un numéro autre que 1,2,3 ou 4, le message d’avertissement suivant s’affiche :

6. Dans l’exemple suivant, je vais convertir mon installation Windows Server 2012 R2 avec interface graphique utilisateur vers le mode « Core », donc option 4

7. Windows PowerShell collecte les données nécessaires (vérification disponibilité du package et installation), dès que l’opération est terminée, un redémarrage est requis pour que la conversion soit prise en compte, vous êtes avertis d’ailleurs

8. Il suffit de saisir Oui ou O pour redémarrer votre serveur

9. Une phase de configuration des fonctionnalités (Server-GUI-Mgmt-Infra ou Server-GUI-Shell ou les deux) est effectuée avant et après le redémarrage

10. Après le redémarrage et l’ouverture de session sur le serveur, vous pouvez constater que l’installation complète est convertie à une installation minimale

Laisser un commentaire

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