19/12/2024

AstucesPowerShell

Windows 10 : Installer des logiciels avec PowerShell

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 :

chocolatey-provider-1

 

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.

packagemanagement-2

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 :

packagemanagement-4

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.

packagemanagement-3

Après quelques minutes de patience, Acrobat Reader DC est bien installé sur votre machine !

packagemanagement-5

Vous n'avez plus qu'à installer vos logiciels en ligne de commande, maintenant vous n'aurez plus d'excuse 😉

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

6 commentaires sur “Windows 10 : Installer des logiciels avec PowerShell

  • Juste pour info: il manque un « y »
    Find-Package -Name *Adobe* -Source Chocolate

    Répondre
  • 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

    Répondre
  • 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 ?

    Répondre
    • Bonsoir,

      C’est lors de l’installation pour quelle application par exemple ?
      J’ai remarqué que Chocolatey déposait ses fichiers téléchargés dans « C:\Chocolatey\lib\ » – 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 :

      Install-Package –Name Logmein.Client

      Ca donne quoi de ton côté avec ce package ?

      Florian Répondre

  • Bonsoir,
    La même chose pour moi le téléchargement s’effectue mais programme ne s’installe..

    Répondre
  • 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

    Répondre

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.