SCRIPT : Windows Server 2008 – Lister les composants installés
Dernièrement un de mes collègues m’a demandé de récupérer la liste des composants installés sur un serveur Windows Server 2008 via un script. J’ai tout de suite pensé à utiliser Powershell et je vous fais part du (tout) petit script que j’ai écrit.
le but était donc d’avoir une liste des éléments cochés dans les fenêtres suivantes :
et
Pour écrire ce script, je me suis appuyé sur l’outil servermanagercmd.exe qui permet d’installer/desinstaller des rôles et des fonctionnalités sous Windows Sevrer 2008 mais qui permet également de dumper la configuration dans un fichier XML (ô joie)
le plus gros du travail étant fait, voici donc le petit bout de script :
function Get-InstalledComponents {
[Environment]::GetEnvironmentVariable("TMP") | Push-Location
servermanagercmd –query serverroles.xml | out-null
$serverroles = [XML] (gc .\serverroles.xml)
$serverroles.SelectNodes("//*") | ? {$_.Installed –eq "true"}
del .\serverroles.xml
Pop-Location
}
et voila le résultat
Etant donné que l’on traite un fichier XML Powershell récupère des informations sur lesquelles on peut faire des traitements, comme par exemple :
récupérer la liste des Fonctionnalités installées :
Get-InstalledComponents | ? {$_.name –eq "Features"}
Récupérer la liste des rôles et services de rôles installés :
Get-InstalledComponents | ? {$_.name –like "Role*"}
Choisir les colonnes à afficher
Get-InstalledComponents | select Id, DisplayName, Name
etc.