Installer des logiciels en ligne de commande sur Windows Server
En l'absence d'une interface graphique et d'un navigateur sur notre serveur en mode core, nous sommes obligés de trouver des alternatives afin de pouvoir installer un logiciel en ligne de commande.
Plusieurs options sont possibles, en voici deux :
- Télécharger les sources à partir d'un autre serveur et les copier sur le serveur Core pour l'installation, au format MSI ou EXE, par exemple
- Utiliser un gestionnaire de paquets en ligne de commande comme Chocolatey
J'aurais pu mentionner WinGet qui est le nouveau gestionnaire de paquets de Microsoft, sauf que son installation n'est pas si simple pour le moment sur Windows Server. En fait, il manque certaines dépendances. A voir comment cela évolue par la suite, mais en attendant Chocolatey est facilement installable alors il garde ma préférence.
Avant d'installer un logiciel sur un serveur en mode Core, vérifiez sa compatibilité car l'absence de certains composants, notamment graphique, risque de poser des problèmes.
Sommaire
I. Chocolatey sur Windows Server
A. Installer Chocolatey sur Windows Server
Comme sur un poste de travail Windows, l'installation de Chocolatey sur Windows Server s'effectue à l'aide d'une commande fournie sur le site officiel. Voici la commande à exécuter sur notre serveur Core :
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) choco feature enable -n allowGlobalConfirmation
Ensuite, il ne reste plus qu'à passer à l'utilisation du gestionnaire de paquets. En consultant l'aide, on peut obtenir les commandes principales (voir ci-dessous). Pour obtenir de l'aide sur une commande spécifique, par exemple "choco search" qui permet de rechercher un logiciel, on utilisera cette syntaxe :
choco search -help
B. Installer un logiciel sur Windows Server via Chocolatey
Prenons l'exemple de 7-Zip, un logiciel très répandu pour gérer des archives ZIP sur Windows. Comme il fonctionne sur Windows Server en mode core, autant que l'on en profite. On peut rechercher sa présence dans les dépôts de Chocolatey avec la commande suivante :
choco search 7-zip
De nombreux résultats sont retournés, mais on a tout simplement un paquet nommé "7zip" qui sert à l'installer. La mention "[Approved]" en fin de ligne est importante pour ne prendre que des paquets vérifiés, approuvés.
Afin d'installer 7-zip, utilisez la commande suivante :
choco install 7zip
A partir des sources en ligne, l'installation s'effectue en quelques secondes.
A tout moment, vous pouvez effectuer la mise à jour de 7-Zip vers une version plus récente (quand il y en aura une disponible) avec la commande suivante :
choco upgrade 7zip
Pour utiliser 7-Zip, on peut passer par la ligne de commande du logiciel via 7z.exe ou lancer le gestionnaire graphique de 7-Zip. Pour cela, il faut exécuter le binaire "7zFM.exe" qui se situe dans le répertoire "C:\Program Files\7-Zip\" comme ceci :
& 'C:\Program Files\7-Zip\7zFM.exe'
On peut alors profiter de 7-Zip depuis notre serveur Windows Server 2022 en mode core ! A tout moment, vous pouvez désinstaller un paquet obtenu à partir de Chocolatey avec la commande "choco uninstall" suivie du nom du paquet. Par exemple :
choco uninstall 7zip
Il ne restera plus qu'à valider avec "Y" puis Entrée et le paquet sera désinstallé. Passons maintenant à la seconde méthode. Pour en savoir plus au sujet de Chocolatey, je vous recommande la lecture de cet article :
II. Installation à partir d'un EXE ou MSI
A. Transférer les sources d'installation sur le serveur CORE01
Sur notre poste source nommé SRV01, il sera utile de télécharger les sources du logiciel, que ce soit 7-Zip ou un autre. Pour commencer, nous allons organiser le stockage des fichiers d’installation sur notre serveur, et ensuite envoyer un premier logiciel sur le serveur.
On commence par créer un répertoire nommé « Sources » à la racine du serveur CORE01, afin d’y stocker les fichiers sources pour les installations.
C’est également l’occasion de (re)voir comment créer un répertoire en ligne de commande. La création d’un répertoire s’effectue grâce à la commande « mkdir », mais il faut oublier cette commande et préférer l’utilisation de PowerShell ! On va utiliser le commandlet « New-Item » qui permet de créer des objets de différents types, notamment des dossiers.
Il suffit d’indiquer le nom de l’objet et son type, et il sera créé (au sein du répertoire courant s’il n’y a pas de chemin spécifié). La commande sera :
New-Item -Name Sources -ItemType Directory
Un répertoire « Sources » vient d’être créé dans « C:\ ». Pour vérifier la création du répertoire, on liste tous les objets enfants du répertoire courant (à savoir « C:\ »). Il suffit d’exécuter la commande « Get-ChildItem » que l’on peut traduire par « Obtenir les objets enfants ».
Comme astuce, je précise qu’il est possible d’utiliser « gci » comme commande en tant que diminutif (alias) de la commande « Get-ChildItem ».
Note : Historiquement, la commande DOS correspondante est « dir ».
Quel logiciel allons-nous installer ?
À titre d’exemple, nous allons installer le logiciel « 7-Zip » (déjà installé puis désinstallé précédemment) sur le serveur CORE01. Après avoir téléchargé l’exécutable du logiciel depuis SRV01, on va l’envoyer sur le serveur distant.
Pour l’envoyer, il suffit de se connecter sur le serveur CORE01 en utilisant le chemin UNC (via l’adresse IP ou le nom de l’hôte, comme vous voulez), à partir du serveur SRV01.
Note : Un chemin UNC (Universal Naming Convention) est un chemin « conventionné » vers une ressource accessible par le réseau.
On utilisera le chemin suivant :
\\CORE01\c$
Lorsque l’on souhaite accéder au lecteur système de Windows, à distance, on précise « C » suivit de « $ » puisqu’il s’agit d’un partage administratif caché. Sous Windows, on peut cacher un partage en ajoutant un « $ » à la fin de son nom. L'objectif étant de copier-coller l'installeur de 7-zip dans C:\Sources.
B. Installation du logiciel
Maintenant on repasse sur CORE01, et on va y rester. Accédez au répertoire « Sources » grâce à la commande Set-Location (ou « cd ») qui permet de se déplacer dans l’arborescence de données.
Set-Location C:\Sources
Exécutez l’installeur de 7-Zip en appuyant sur la touche TAB (tabulations) du clavier qui va autocompléter la ligne de commande et vous proposer l’exécution du fichier « .exe » (ou du ".msi" en fonction du format).
De manière générale, pour exécuter un « .exe » il faut utiliser la formule suivante :
.\nom-du-exe.exe
L’assistant d’installation de 7-Zip va démarrer… Dans le cas où l'on aurait un installeur au format MSI, on pourrait réaliser une installation silencieuse grâce à l'option "/quiet" :
.\7z2107-x64.msi /quiet
Il faut garder à l’esprit que pour démarrer une application, il faudra exécuter directement le lanceur positionné dans le répertoire d’installation de l’application. De ce fait, il est important de regarder où s’installe le logiciel lors de l’installation.
Pour démarrer le logiciel, le principe reste le même par rapport à la méthode précédente basée sur l'utilisation de Chocolatey.
Félicitations ! Vous venez d’installer une application tierce sur Windows Server Core. Mise à part pour des applications spécifiques que l'on ne trouve pas facilement sur Internet, la méthode via Chocolatey me semble la plus adaptée pour installer un logiciel sur Windows Server Core.