Installer des rôles et fonctionnalités en ligne de commande sous Windows Server

Command line interface for installing Windows Server roles and features

L’administration efficace d’un parc de serveurs repose sur l’automatisation et la rapidité d’exécution. Depuis Windows Server 2008, Microsoft a introduit des mécanismes permettant de s’affranchir complètement de l’assistant graphique d’ajout de rôles. L’utilitaire en ligne de commande historique ServerManagerCmd.exe a marqué un tournant décisif dans cette approche, permettant de scripter l’installation des composants de base sur un serveur neuf ou en environnement Server Core.

Bien que cet outil ait été déprécié au profit des cmdlets PowerShell (comme Install-WindowsFeature), il reste fondamental pour quiconque maintient des systèmes existants ou souhaite comprendre la structure interne des identifiants techniques de fonctionnalités Windows. Ce mémo technique récapitule le fonctionnement de ServerManagerCmd, sa syntaxe, ses options clés, ainsi que la transition indispensable vers PowerShell.

Pourquoi déployer des fonctionnalités en ligne de commande ?

L’interface graphique de gestion du serveur (Gestionnaire de serveur) est pratique pour une découverte visuelle, mais elle présente plusieurs inconvénients majeurs en production :

  • Lenteur d’exécution : le clic répétitif à travers les arborescences de dépendances prend du temps et augmente le risque d’oublier une option requise.
  • Reproductibilité limitée : documenter une procédure avec des captures d’écran est souvent source d’erreurs humaines lors du passage en production.
  • Déploiements massifs : l’installation à distance ou l’intégration dans des scripts de post-installation nécessite un outil pilotable par batch ou script shell.
  • Prise en main des consoles légères : sur les installations minimales de type Server Core, la ligne de commande est la voie d’administration par excellence. Pour aller plus vite dans votre terminal, vous pouvez d’ailleurs consulter nos raccourcis console Microsoft Windows.

Syntaxe et paramètres de base de ServerManagerCmd

L’exécutable ServerManagerCmd.exe se situe dans le répertoire %SystemRoot%\System32. Il s’exécute impérativement dans une invite de commandes lancée avec les privilèges d’administrateur élevé.

La structure générale de la commande est la suivante :

ServerManagerCmd.exe -query [FichierRequete.xml]
ServerManagerCmd.exe -install IdentifiantComposant [-allSubFeatures] [-restart]
ServerManagerCmd.exe -remove IdentifiantComposant [-restart]

1. Auditer l’état actuel avec le paramètre -query

Avant d’ajouter quoi que ce soit, il est essentiel de connaître l’état des services hébergés sur la machine. La commande suivante liste l’ensemble des rôles, sous-rôles et fonctionnalités installables, en indiquant clairement leur statut :

ServerManagerCmd.exe -query

Chaque élément est préfixé d’un crochet coché [X] s’il est déjà présent, ou vide [ ] s’il est disponible mais non installé. Pour auditer la machine plus largement au niveau des correctifs appliqués, n’hésitez pas à vérifier notre astuce pour lister les hotfixes installés sur votre environnement.

Vous pouvez exporter cet audit au format XML afin de documenter l’état d’un template ou de comparer deux machines :

ServerManagerCmd.exe -query etat_serveur.xml

2. Installer un rôle ou un service (-install)

Pour ajouter un composant, on utilise le commutateur -install suivi du nom technique strict de la fonctionnalité (case-insensitive mais sensible à l’orthographe exacte). Par exemple, pour installer les services de déploiement Windows (WDS) :

ServerManagerCmd.exe -install WDS

Si vous devez déployer un service complexe avec toutes ses dépendances imbriquées, l’argument -allSubFeatures est capital. Sans lui, seule la racine du rôle est activée sans ses outils ou sous-modules.

ServerManagerCmd.exe -install Web-Server -allSubFeatures

Si le rôle requiert un redémarrage système pour finaliser son enregistrement (par exemple Hyper-V ou le clustering), ajoutez le commutateur -restart. Le système initiera son cycle de redémarrage sans intervention interactive.

3. Supprimer un composant (-remove)

Le nettoyage d’un serveur ou la désinstallation de services devenus inutiles suit le même mécanisme logique :

ServerManagerCmd.exe -remove Telnet-Client

L’outil effectue un contrôle des dépendances. Si un composant est requis par un autre rôle toujours actif, l’opération est refusée et le message d’erreur précise la dépendance bloquante.

Table de correspondance des identifiants techniques

Le tableau ci-dessous regroupe les identifiants en ligne de commande les plus couramment utilisés lors de la configuration initiale d’une infrastructure d’entreprise sous Windows Server :

Services d’infrastructure et d’annuaire

  • Active Directory Domain Services : ADDS-Domain-Controller
  • Serveur DNS : DNS (crucial pour le bon fonctionnement des zones de recherche, voir notre article pour comprendre DNS en profondeur)
  • Serveur DHCP : DHCP
  • Services de certificats (AD CS) : ADCS-Cert-Authority
  • Gestionnaire d’accès distant / Stratégie réseau : NPAS-RRAS et NPAS-Policy-Server
  • Services de fichiers : FS-FileServer, FS-DFS-Namespace, FS-DFS-Replication
  • Gestionnaire de ressources du serveur de fichiers : FS-Resource-Manager

Services Web et applicatifs

  • Serveur Web IIS de base : Web-Server
  • Modules HTTP standard : Web-Static-Content, Web-Default-Doc, Web-Http-Redirect
  • Prise en charge applicative : Web-Asp-Net, Web-Net-Ext, Web-ISAPI-Ext
  • Outils d’administration IIS : Web-Mgmt-Console, Web-Scripting-Tools
  • Serveur de publication FTP : Web-Ftp-Server

Accès distant et virtualisation

  • Hyper-V : Hyper-V
  • Services Bureau à distance (Terminal Services) : TS-Terminal-Server
  • Gestionnaire de licences TSE : TS-Licensing
  • Passerelle TS Gateway : TS-Gateway
  • Accès Web Bureau à distance : TS-Web-Access (pour découvrir les évolutions majeures de ce service, lisez le point sur les nouveautés Windows 2008 TS Web Access)

Fonctionnalités utilitaires et réseau

  • Client Telnet : Telnet-Client
  • Serveur SNMP et fournisseur WMI : SNMP-Services, SNMP-Service
  • Sauvegarde Windows Server : Backup
  • Clustering de basculement : Failover-Clustering
  • Équilibrage de charge réseau (NLB) : NLB
  • Outils d’administration de serveur distant (RSAT) : RSAT-ADDS, RSAT-DNS, RSAT-DHCP
  • Gestion des stratégies de groupe : GPMC
  • Sous-système pour applications UNIX : Subsystem-UNIX-Apps

Utiliser un fichier de configuration XML pour les déploiements types

L’un des grands atouts méconnus de ServerManagerCmd réside dans sa capacité à consommer un plan de déploiement XML préconfiguré via le paramètre -inputPath.

Cette méthode est particulièrement adaptée aux modèles de déploiement en série (golden images). Vous générez un export XML d’une machine de référence avec le commutateur -query, vous ajustez les éléments désirés dans un éditeur de texte, puis vous exécutez :

ServerManagerCmd.exe -inputPath template_roles.xml -whatIf

L’argument -whatIf simule l’exécution sans apporter de modification au système d’exploitation. Cela permet d’anticiper les conflits, d’estimer les dépendances logicielles manquantes et de valider la liste des redémarrages nécessaires avant le lancement effectif.

La transition moderne vers PowerShell

À partir de Windows Server 2008 R2 et de façon définitive sous Windows Server 2012 et versions ultérieures, ServerManagerCmd.exe a été retiré. Le module PowerShell ServerManager le remplace avantageusement en offrant un pipeline natif et le support de la gestion à distance sans agent lourd.

Voici la correspondance directe entre les anciennes commandes et l’environnement PowerShell standard :

Lister les fonctionnalités

Get-WindowsFeature

Pour rechercher rapidement un rôle spécifique sans parcourir tout le catalogue :

Get-WindowsFeature -Name *DHCP*

Installer un rôle et ses dépendances

Install-WindowsFeature -Name Web-Server -IncludeManagementTools -IncludeAllSubFeature

Si vous pilotez un serveur distant depuis votre poste d’administration, précisez simplement la cible :

Install-WindowsFeature -ComputerName SRV-CORE-01 -Name Hyper-V -Restart

Désinstaller une fonctionnalité

Uninstall-WindowsFeature -Name Telnet-Client

Bonnes pratiques d’administration en production

Que vous interveniez sur une ancienne infrastructure exécutant encore des scripts historiques ou sur des machines modernes déployées via des playbooks automatisés, gardez ces règles d’or en tête :

  1. Toujours tester avec une simulation : utilisez systématiquement -whatIf (sous ServerManagerCmd comme sous PowerShell) avant d’appliquer une modification lourde sur un contrôleur de domaine ou un serveur de base de données.
  2. Ne pas surcharger le serveur : n’installez que le strict nécessaire au fonctionnement du rôle. Les outils de gestion graphique (RSAT) doivent idéalement être hébergés sur les postes de travail des administrateurs, et non sur le serveur lui-même.
  3. Contrôler les redémarrages intempestifs : en environnement de production mutualisé, évitez le commutateur -restart automatique sans avoir planifié une fenêtre d’intervention auprès des utilisateurs et vérifié les basculements de haute disponibilité.
  4. Archiver vos fichiers de réponses : conservez vos scripts et fichiers XML dans un gestionnaire de versions pour garantir la reproductibilité exacte de vos déploiements en cas de reprise d’activité.

À lire aussi