Windows 10 : Installer des logiciels avec PowerShell
Sommaire
I. Présentation
Directement issus du projet Open Source "OneGet", Microsoft a implémenté au sein de Windows 10 un nouveau module PowerShell nommé "PackageManagement" qui permet de gérer les logiciels en ligne de commande. Autrement dit, on se rapproche d'une utilisation comme sous Linux où l'on peut installer un logiciel d'une simple commande avec le très célèbre "apt-get install".
En résumé, PackageManagement est un gestionnaire de paquets utilisable via PowerShell. Typiquement, ceci peut-être utilisé pour automatiser l'installation de logiciels sur une machine fraîchement installée, et ceci peut remplacer des outils comme Ninite.
Note : Pour ceux qui s'intéressent également à Nano Server, il y a un provider spécifique nommé "NanoServerPackage"
Il sera également intéressant de pouvoir automatiser l'installation de plusieurs logiciels par l'intermédiaire d'un script PowerShell grâce à ce module.
Ce module est réservé à PowerShell 5, pour les versions 3 et 4 de PowerShell, référez-vous à ce lien : PackagementManagement PowerShell V3 et V4
II. Les commandes de PackageManagement
Pour lister les commandes disponibles au sein de ce module, rien de plus simple on saisit dans une console PowerShell :
Get-Command -Module PackageManagement
Dans la version 1.0.0.1 actuelle du module, voici les commandes disponibles :
- Find-Package : Rechercher un paquet au sein des sources de paquets disponibles
- Get-Package : Retourne la liste des tous les paquets installés
- Get-PackageProvider : Retourne la liste des fournisseurs de paquets (dépôts) utilisés sur la machine
- Get-PackageSource : Retourne la liste des sources disponibles pour récupérer les paquets
- Install-Package : Installer un paquet (logiciel) sur la machine
- Register-PackageSource : Ajouter une source dans un provider
- Save-Package : Sauvegarder un paquet en local sans l'installer
- Set-PackageSource : Définir un provider comme source pour les paquets
- Uninstall-Package : Désinstaller un paquet (logiciel)
- Unregister-PackageSource : Retirer l'utilisation un provider des sources pour les paquets
Retrouvez l'aide sur le Developer Network de Microsoft : Microsoft PackageManagement (OneGet)
PackageManagement reprend le principe du logiciel Chocolatey qui permet d'installer des logiciels en ligne de commande, vous pouvez lire mon tutoriel à ce sujet si ceci vous intéresse car Chocolatey peut très bien être utilisé sous Windows 10 : Chocolatey sous Windows 10
D'ailleurs, Chocolatey fait parti des providers disponibles pour l'installation de logiciels en PowerShell.
III. Rechercher et installer un provider
Pour lister tous les providers disponibles, nous allons utiliser la commande suivante :
Find-PackageProvider
Ceci nous donne toutes les sources utilisables pour récupérer des paquets en ligne, il est essentiel de commencer par cette étape. On va ajouter chocolatey qui contient à ce jour plus de 4 300 paquets.
Pour installer un nouveau provider, utiliser la commande suivante :
Install-PackageProvider chocolatey
Indiquez "O" pour "Oui" afin de valider l'installation. Ce qui donnera :
Note : Par défaut, le provider "PSGallery" est déjà installé puisqu'il permet de rechercher des modules PowerShell sur la galerie en ligne Microsoft.
On va en profiter pour définir Chocolatey comme une source de confiance pour le téléchargement des paquets, ce qui évitera d'avoir une confirmation à l'installation de chaque application :
PS C:\WINDOWS\system32> Set-PackageSource -Name chocolatey -Trusted Name ProviderName IsTrusted Location ---- ------------ --------- -------- chocolatey Chocolatey True http://chocolatey.org/api/v2/
Dès à présent Chocolatey fait partie des sources pour l'installation de logiciels en PowerShell :
PS C:\WINDOWS\system32> Get-PackageSource Name ProviderName IsTrusted Location ---- ------------ --------- -------- PSGallery PowerShellGet False https://www.powershellgallery.com/api/v2/ chocolatey Chocolatey False http://chocolatey.org/api/v2/
Passons désormais sur un cas concret avec l'installation d'un paquet via Chocolatey.
IV. Installer un paquet depuis les dépôts Chocolatey
Tout d'abord, il est intéressant de recherche le paquet au sein de nos dépôts afin de trouver son nom exact. Dans ce tutoriel, je prends pour exemple l'installation d'Adobe Reader ça me donnera l'occasion de l'installer sur ma machine...
Lien utile : Liste des paquets Chocolatey
On peut directement vérifier l'existence d'un paquet avec la commande "Find-Package" mais si vous ne connaissez pas le nom exact, il est préférable d'encadrer votre mot clé par des astérisques * qui permet de rechercher ce terme. Voici une copie d'écran avec des exemples et voici une commande correcte :
Find-Package -Name *Adobe* -Source Chocolatey
Ce n'est pas obligatoire de préciser la source pour recherche le package, mais ça peut-être utile si vous avez plusieurs sources définies sur votre poste et que vous souhaitez en prioriser une.
Pour installer le paquet en s'appuyant sur le fournisseur Chocolatey qui héberge le paquet que l'on veut, on utilisera cette commande :
Install-Package -Name AdobeReader -ProviderName Chocolatey
Si nous n'avions pas approuvé Chocolatey comme source sûre, ceci aurait été proposé lors de la première installation. Voyez par vous-même :
Dans le haut de votre fenêtre PowerShell, l'avancement quant au téléchargement d'Adobe Reader est indiqué, puis l'application s'installera toute seule en tout transparence.
Après quelques minutes de patience, Acrobat Reader DC est bien installé sur votre machine !
Vous n'avez plus qu'à installer vos logiciels en ligne de commande, maintenant vous n'aurez plus d'excuse 😉
Juste pour info: il manque un « y »
Find-Package -Name *Adobe* -Source Chocolate
Bonjour
Merci pour ce tuto.
Par contre, j’ai bien la barre de progression de DL mais par contre le logiciel n’est pas installé.
J’ai fait la manip avec Acrobat et Google Chrome.
J’ai reboot la machine mais rien y fait.
Quelle est la solution?
Y a t il des logs?
Merci
Bonjour merci toute ces information
Comme mon compère au dessus aucun logiciel ne s’installe, il download et puis plus rien…
il manque des droits ?
Bonsoir,
C’est lors de l’installation pour quelle application par exemple ? » – avec un dossier « tools » par package contenant un ou plusieurs scripts avec les instructions d’installation. Avec LogMeIn ça fonctionne bien, simplement avec la commande suivante :
J’ai remarqué que Chocolatey déposait ses fichiers téléchargés dans « C:\Chocolatey\lib\
Ca donne quoi de ton côté avec ce package ?
Florian
Bonsoir,
La même chose pour moi le téléchargement s’effectue mais programme ne s’installe..
bonjour,
Je voudrais savoir si c’est possible d’installer un logiciel par powershell d’un PC à un autre PC distant ?
Si oui, comment ça marche ?
Je suis un débutant
Merci