Actualiser powershell/libres-softwares-install.ps1

This commit is contained in:
2026-01-31 11:12:06 +01:00
parent c46476fd66
commit cb82d79275
+27 -27
View File
@@ -1,9 +1,9 @@
# Script d'installation de logiciels avec winget # Script d'installation de logiciels avec winget
# Permet de choisir les logiciels à installer # Permet de choisir les logiciels a installer
# Vérification que winget est installé # Verification que winget est installe
if (-not (Get-Command winget -ErrorAction SilentlyContinue)) { if (-not (Get-Command winget -ErrorAction SilentlyContinue)) {
Write-Host "ERREUR: winget n'est pas installé sur ce système." -ForegroundColor Red Write-Host "ERREUR: winget n'est pas installe sur ce systeme." -ForegroundColor Red
Write-Host "Veuillez installer le 'App Installer' depuis le Microsoft Store." -ForegroundColor Yellow Write-Host "Veuillez installer le 'App Installer' depuis le Microsoft Store." -ForegroundColor Yellow
exit 1 exit 1
} }
@@ -17,18 +17,18 @@ Write-Host ""
$logiciels = @( $logiciels = @(
@{Nom = "Firefox ESR (FR)"; ID = "Mozilla.Firefox.ESR"; Description = "Navigateur web Mozilla Firefox ESR"}, @{Nom = "Firefox ESR (FR)"; ID = "Mozilla.Firefox.ESR"; Description = "Navigateur web Mozilla Firefox ESR"},
@{Nom = "7-Zip"; ID = "7zip.7zip"; Description = "Gestionnaire d'archives"}, @{Nom = "7-Zip"; ID = "7zip.7zip"; Description = "Gestionnaire d'archives"},
@{Nom = "VLC Media Player"; ID = "VideoLAN.VLC"; Description = "Lecteur multimédia"}, @{Nom = "VLC Media Player"; ID = "VideoLAN.VLC"; Description = "Lecteur multimedia"},
@{Nom = "OnlyOffice"; ID = "ONLYOFFICE.DesktopEditors"; Description = "Suite bureautique"}, @{Nom = "OnlyOffice"; ID = "ONLYOFFICE.DesktopEditors"; Description = "Suite bureautique"},
@{Nom = "LibreOffice"; ID = "TheDocumentFoundation.LibreOffice"; Description = "Suite bureautique libre"}, @{Nom = "LibreOffice"; ID = "TheDocumentFoundation.LibreOffice"; Description = "Suite bureautique libre"},
@{Nom = "GIMP"; ID = "GIMP.GIMP"; Description = "Éditeur d'images"}, @{Nom = "GIMP"; ID = "GIMP.GIMP"; Description = "Editeur d'images"},
@{Nom = "Inkscape"; ID = "Inkscape.Inkscape"; Description = "Éditeur de graphiques vectoriels"}, @{Nom = "Inkscape"; ID = "Inkscape.Inkscape"; Description = "Editeur de graphiques vectoriels"},
@{Nom = "Chromium"; ID = "Hibbiki.Chromium"; Description = "Navigateur web open source"}, @{Nom = "Chromium"; ID = "Hibbiki.Chromium"; Description = "Navigateur web open source"},
@{Nom = "Bitwarden"; ID = "Bitwarden.Bitwarden"; Description = "Gestionnaire de mots de passe"}, @{Nom = "Bitwarden"; ID = "Bitwarden.Bitwarden"; Description = "Gestionnaire de mots de passe"},
@{Nom = "Thunderbird"; ID = "Mozilla.Thunderbird"; Description = "Client de messagerie"} @{Nom = "Thunderbird"; ID = "Mozilla.Thunderbird"; Description = "Client de messagerie"}
) )
# Affichage de la liste des logiciels # Affichage de la liste des logiciels
Write-Host "Logiciels disponibles à l'installation :" -ForegroundColor Green Write-Host "Logiciels disponibles a l'installation :" -ForegroundColor Green
Write-Host "" Write-Host ""
for ($i = 0; $i -lt $logiciels.Count; $i++) { for ($i = 0; $i -lt $logiciels.Count; $i++) {
Write-Host ("{0,2}. [{1}] {2}" -f ($i + 1), " ", $logiciels[$i].Nom) -ForegroundColor White Write-Host ("{0,2}. [{1}] {2}" -f ($i + 1), " ", $logiciels[$i].Nom) -ForegroundColor White
@@ -38,18 +38,18 @@ Write-Host ""
Write-Host "===========================================================" -ForegroundColor Cyan Write-Host "===========================================================" -ForegroundColor Cyan
Write-Host "" Write-Host ""
# Sélection des logiciels # Selection des logiciels
Write-Host "Entrez les numéros des logiciels à installer (séparés par des virgules)" -ForegroundColor Yellow Write-Host "Entrez les numeros des logiciels a installer (separes par des virgules)" -ForegroundColor Yellow
Write-Host "Exemple: 1,3,5 ou tapez 'tous' pour tout installer" -ForegroundColor Yellow Write-Host "Exemple: 1,3,5 ou tapez 'tous' pour tout installer" -ForegroundColor Yellow
Write-Host "" Write-Host ""
$choix = Read-Host "Votre choix" $choix = Read-Host "Votre choix"
# Traitement du choix # Traitement du choix
$logiციelsAInstaller = @() $logicielsAInstaller = @()
if ($choix.ToLower() -eq "tous" -or $choix.ToLower() -eq "all") { if ($choix.ToLower() -eq "tous" -or $choix.ToLower() -eq "all") {
$logicielsAInstaller = $logiciels $logicielsAInstaller = $logiciels
Write-Host "`nTous les logiciels seront installés." -ForegroundColor Green Write-Host "`nTous les logiciels seront installes." -ForegroundColor Green
} else { } else {
$numeros = $choix -split ',' | ForEach-Object { $_.Trim() } $numeros = $choix -split ',' | ForEach-Object { $_.Trim() }
@@ -59,20 +59,20 @@ if ($choix.ToLower() -eq "tous" -or $choix.ToLower() -eq "all") {
if ($index -ge 0 -and $index -lt $logiciels.Count) { if ($index -ge 0 -and $index -lt $logiciels.Count) {
$logicielsAInstaller += $logiciels[$index] $logicielsAInstaller += $logiciels[$index]
} else { } else {
Write-Host "Numéro invalide ignoré: $num" -ForegroundColor Red Write-Host "Numero invalide ignore: $num" -ForegroundColor Red
} }
} }
} }
} }
if ($logicielsAInstaller.Count -eq 0) { if ($logicielsAInstaller.Count -eq 0) {
Write-Host "`nAucun logiciel sélectionné. Fin du script." -ForegroundColor Yellow Write-Host "`nAucun logiciel selectionne. Fin du script." -ForegroundColor Yellow
exit 0 exit 0
} }
# Confirmation # Confirmation
Write-Host "`n===========================================================" -ForegroundColor Cyan Write-Host "`n===========================================================" -ForegroundColor Cyan
Write-Host "Logiciels sélectionnés pour l'installation :" -ForegroundColor Green Write-Host "Logiciels selectionnes pour l'installation :" -ForegroundColor Green
foreach ($log in $logicielsAInstaller) { foreach ($log in $logicielsAInstaller) {
Write-Host " - $($log.Nom)" -ForegroundColor White Write-Host " - $($log.Nom)" -ForegroundColor White
} }
@@ -81,13 +81,13 @@ Write-Host ""
$confirmation = Read-Host "Confirmer l'installation ? (O/N)" $confirmation = Read-Host "Confirmer l'installation ? (O/N)"
if ($confirmation -notmatch '^[oOyY]') { if ($confirmation -notmatch '^[oOyY]') {
Write-Host "`nInstallation annulée." -ForegroundColor Yellow Write-Host "`nInstallation annulee." -ForegroundColor Yellow
exit 0 exit 0
} }
# Installation des logiciels # Installation des logiciels
Write-Host "`n===========================================================" -ForegroundColor Cyan Write-Host "`n===========================================================" -ForegroundColor Cyan
Write-Host "Début de l'installation..." -ForegroundColor Green Write-Host "Debut de l'installation..." -ForegroundColor Green
Write-Host "===========================================================" -ForegroundColor Cyan Write-Host "===========================================================" -ForegroundColor Cyan
Write-Host "" Write-Host ""
@@ -104,37 +104,37 @@ foreach ($logiciel in $logicielsAInstaller) {
$process = Start-Process -FilePath "winget" -ArgumentList "install", "--id", $logiciel.ID, "--silent", "--accept-source-agreements", "--accept-package-agreements" -NoNewWindow -Wait -PassThru $process = Start-Process -FilePath "winget" -ArgumentList "install", "--id", $logiciel.ID, "--silent", "--accept-source-agreements", "--accept-package-agreements" -NoNewWindow -Wait -PassThru
if ($process.ExitCode -eq 0) { if ($process.ExitCode -eq 0) {
Write-Host " $($logiciel.Nom) installé avec succès" -ForegroundColor Green Write-Host "OK $($logiciel.Nom) installe avec succes" -ForegroundColor Green
$reussites++ $reussites++
$resultats += @{Logiciel = $logiciel.Nom; Statut = "Succès"} $resultats += @{Logiciel = $logiciel.Nom; Statut = "Succes"}
} else { } else {
Write-Host "✗ Échec de l'installation de $($logiciel.Nom) (Code: $($process.ExitCode))" -ForegroundColor Red Write-Host "ERREUR Echec de l'installation de $($logiciel.Nom) (Code: $($process.ExitCode))" -ForegroundColor Red
$echecs++ $echecs++
$resultats += @{Logiciel = $logiciel.Nom; Statut = "Échec"} $resultats += @{Logiciel = $logiciel.Nom; Statut = "Echec"}
} }
} catch { } catch {
Write-Host "✗ Erreur lors de l'installation de $($logiciel.Nom): $_" -ForegroundColor Red Write-Host "ERREUR lors de l'installation de $($logiciel.Nom): $_" -ForegroundColor Red
$echecs++ $echecs++
$resultats += @{Logiciel = $logiciel.Nom; Statut = "Erreur"} $resultats += @{Logiciel = $logiciel.Nom; Statut = "Erreur"}
} }
} }
# Résumé de l'installation # Resume de l'installation
Write-Host "`n===========================================================" -ForegroundColor Cyan Write-Host "`n===========================================================" -ForegroundColor Cyan
Write-Host "Résumé de l'installation" -ForegroundColor Cyan Write-Host "Resume de l'installation" -ForegroundColor Cyan
Write-Host "===========================================================" -ForegroundColor Cyan Write-Host "===========================================================" -ForegroundColor Cyan
Write-Host "" Write-Host ""
foreach ($resultat in $resultats) { foreach ($resultat in $resultats) {
if ($resultat.Statut -eq "Succès") { if ($resultat.Statut -eq "Succes") {
Write-Host " $($resultat.Logiciel): $($resultat.Statut)" -ForegroundColor Green Write-Host "[OK] $($resultat.Logiciel): $($resultat.Statut)" -ForegroundColor Green
} else { } else {
Write-Host " $($resultat.Logiciel): $($resultat.Statut)" -ForegroundColor Red Write-Host "[X] $($resultat.Logiciel): $($resultat.Statut)" -ForegroundColor Red
} }
} }
Write-Host "" Write-Host ""
Write-Host "Total: $reussites réussite(s), $echecs échec(s)" -ForegroundColor $(if ($echecs -eq 0) { "Green" } else { "Yellow" }) Write-Host "Total: $reussites reussite(s), $echecs echec(s)" -ForegroundColor $(if ($echecs -eq 0) { "Green" } else { "Yellow" })
Write-Host "===========================================================" -ForegroundColor Cyan Write-Host "===========================================================" -ForegroundColor Cyan
Write-Host "" Write-Host ""
Write-Host "Appuyez sur une touche pour quitter..." Write-Host "Appuyez sur une touche pour quitter..."