Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 1 livre papier acheté 
= la version en ligne automatiquement offerte. Cliquez ici
  1. Livres et vidéos
  2. Windows PowerShell
  3. Gestion des logiciels
Extrait - Windows PowerShell Administration de postes clients Windows (4e édition)
Extraits du livre
Windows PowerShell Administration de postes clients Windows (4e édition)
1 avis
Revenir à la page d'achat du livre

Gestion des logiciels

Gérer les logiciels installés

Dans le chapitre Recherche et collecte d’informations, vous avez vu qu’il est possible de lister les logiciels installés sur un poste de travail, principalement avec la requête WMI Win32_Product. Cependant cette méthode liste uniquement les applications installées par l’intermédiaire de Windows Installer.

D’autres méthodes existent, dont une est particulièrement intéressante : passer par la base de registre. Il y a plusieurs avantages à passer par ce biais :

  • Les manipulations dans la base de registre avec Windows PowerShell sont simples, avec les cmdlets de nom *-Item* (à l’exception d’Invoke-Item), comme cela a été vu dans le chapitre Les lecteurs Windows PowerShell.

  • Chacun des logiciels installés sur l’ordinateur possède une clé de registre avec un certain nombre d’informations les concernant. Celles-ci sont disponibles sous les clés de registre suivantes :

Architecture Windows

Clé de registre

Windows 32 bits

HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion \Uninstall

Windows 64 bits

HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion \Uninstall

HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows \CurrentVersion\Uninstall

Deux informations relatives à chaque logiciel installé sont très intéressantes : la valeur DisplayName, qui correspond au nom du logiciel tel qu’il est inscrit dans Programmes et fonctionnalités du Panneau de configuration. La seconde, qui permet de lancer la désinstallation du logiciel, est la valeur UninstallString. Nous allons voir cela plus en détail par la suite.

Images/08EI301.png

Valeurs de registres présentes pour chaque logiciel installé

Au niveau de Windows, cela correspond à Désinstaller ou modifier un programme, présent dans Programmes et fonctionnalités du Panneau de configuration.

images/05EI01N.png

Liste des logiciels installés

1. Lister les logiciels installés

Tout d’abord, comment établir une liste des logiciels installés ? Il faut pour cela récupérer la donnée enregistrée dans la valeur de registre DisplayName. Cette dernière est présente pour chacun des programmes installés dans des sous-clés de HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall...

Lancer un exécutable

Pour lancer un exécutable ou un script, il faut toujours préciser le chemin absolu ou le chemin relatif au fichier que vous souhaitez lancer, sauf si celui-ci est présent dans un dossier de la variable d’environnement PATH.

Ainsi, pour lancer des fichiers exécutables ou des scripts présents dans l’emplacement actif, ceux-ci doivent être précédés de ".\".

Exemple :

PS C:\Temp> .\myScript.ps1 

La cmdlet Start-Process permet de démarrer des processus, et donc de lancer des exécutables. Dans ce cas précis, il n’est pas obligatoire de préciser le chemin relatif si le fichier est dans le dossier actif :

Exemple :

PS C:\Temp> Start-Process MediaCreationToolx64.exe 

Pour lancer un script PowerShell depuis un autre environnement (invite de commandes, ou autre programme), le moteur de script powershell.exe doit être appelé, suivi du script à lancer.

Voici deux exemples pour lancer un script PowerShell depuis l’invite de commandes (cmd.exe) :

Exemple 1 : lancement d’un script PowerShell depuis l’invite de commandes

C:\Temp>powershell.exe .\debug.ps1 
** Début du script ! ** 
Hello World ! 
 
vendredi 26 septembre 2014 15:20:01 
** Fin du script ! ** 

Exemple 2 : même scénario que précédemment, mais avec des arguments

Dans...

Windows Installer (MSI)

Savoir installer, mettre à jour et désinstaller des logiciels en ligne de commande, et parfois à distance est un besoin fondamental pour un administrateur de postes de travail. Vous allez donc voir ici comment interagir avec les packages MSI, soit sur un poste de travail local, mais aussi sur un ou plusieurs ordinateurs distants.

1. Qu’est-ce que Windows Installer ?

Windows Installer (précédemment connu sous le nom de Microsoft Installer) est un moteur d’installation de logiciels utilisé pour l’installation, la mise à jour, mais aussi la désinstallation des applications. Le fichier permettant d’exécuter Windows Installer est msiexec.exe, tandis que les packages servant à l’installation des applications et aux mises à jour sont respectivement des fichiers aux extensions .msi et .msp.

Chaque application installée par le biais de Windows Installer est identifiée par un GUID, qui est alors référencé dans la base de registre. Ces identifiants correspondent aux sous-clés présentes dans :

  • HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

  • HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\ CurrentVersion\Uninstall

images/05EI03N.png

Clé GUID de l’application paint.net dans l’Éditeur du Registre

Vous pouvez également consulter l’aide de l’exécutable msiexec.exe. Ce dernier possède de nombreux paramètres très pratiques qu’il est appréciable d’assimiler. Pour ouvrir l’aide, spécifiez le paramètre /help à l’exécutable.

PS C:\Windows\system32> Start-Process msiexec.exe -ArgumentList "/help" 
Images/08EI01V496.png

Liste des paramètres de Windows Installer

2. Installer un package MSI

Le principal intérêt...