Actualiser powershell/libres-softwares-install.ps1

This commit is contained in:
2026-01-31 11:12:06 +01:00
parent c46476fd66
commit cb82d79275

View File

@@ -1,9 +1,9 @@
# 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)) {
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
exit 1
}
@@ -17,18 +17,18 @@ Write-Host ""
$logiciels = @(
@{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 = "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 = "LibreOffice"; ID = "TheDocumentFoundation.LibreOffice"; Description = "Suite bureautique libre"},
@{Nom = "GIMP"; ID = "GIMP.GIMP"; Description = "Éditeur d'images"},
@{Nom = "Inkscape"; ID = "Inkscape.Inkscape"; Description = "Éditeur de graphiques vectoriels"},
@{Nom = "GIMP"; ID = "GIMP.GIMP"; Description = "Editeur d'images"},
@{Nom = "Inkscape"; ID = "Inkscape.Inkscape"; Description = "Editeur de graphiques vectoriels"},
@{Nom = "Chromium"; ID = "Hibbiki.Chromium"; Description = "Navigateur web open source"},
@{Nom = "Bitwarden"; ID = "Bitwarden.Bitwarden"; Description = "Gestionnaire de mots de passe"},
@{Nom = "Thunderbird"; ID = "Mozilla.Thunderbird"; Description = "Client de messagerie"}
)
# 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 ""
for ($i = 0; $i -lt $logiciels.Count; $i++) {
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 ""
# Sélection des logiciels
Write-Host "Entrez les numéros des logiciels à installer (séparés par des virgules)" -ForegroundColor Yellow
# Selection des logiciels
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 ""
$choix = Read-Host "Votre choix"
# Traitement du choix
$logiციelsAInstaller = @()
$logicielsAInstaller = @()
if ($choix.ToLower() -eq "tous" -or $choix.ToLower() -eq "all") {
$logicielsAInstaller = $logiciels
Write-Host "`nTous les logiciels seront installés." -ForegroundColor Green
Write-Host "`nTous les logiciels seront installes." -ForegroundColor Green
} else {
$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) {
$logicielsAInstaller += $logiciels[$index]
} else {
Write-Host "Numéro invalide ignoré: $num" -ForegroundColor Red
Write-Host "Numero invalide ignore: $num" -ForegroundColor Red
}
}
}
}
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
}
# Confirmation
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) {
Write-Host " - $($log.Nom)" -ForegroundColor White
}
@@ -81,13 +81,13 @@ Write-Host ""
$confirmation = Read-Host "Confirmer l'installation ? (O/N)"
if ($confirmation -notmatch '^[oOyY]') {
Write-Host "`nInstallation annulée." -ForegroundColor Yellow
Write-Host "`nInstallation annulee." -ForegroundColor Yellow
exit 0
}
# Installation des logiciels
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 ""
@@ -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
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++
$resultats += @{Logiciel = $logiciel.Nom; Statut = "Succès"}
$resultats += @{Logiciel = $logiciel.Nom; Statut = "Succes"}
} 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++
$resultats += @{Logiciel = $logiciel.Nom; Statut = "Échec"}
$resultats += @{Logiciel = $logiciel.Nom; Statut = "Echec"}
}
} 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++
$resultats += @{Logiciel = $logiciel.Nom; Statut = "Erreur"}
}
}
# Résumé de l'installation
# Resume de l'installation
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 ""
foreach ($resultat in $resultats) {
if ($resultat.Statut -eq "Succès") {
Write-Host " $($resultat.Logiciel): $($resultat.Statut)" -ForegroundColor Green
if ($resultat.Statut -eq "Succes") {
Write-Host "[OK] $($resultat.Logiciel): $($resultat.Statut)" -ForegroundColor Green
} else {
Write-Host " $($resultat.Logiciel): $($resultat.Statut)" -ForegroundColor Red
Write-Host "[X] $($resultat.Logiciel): $($resultat.Statut)" -ForegroundColor Red
}
}
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 ""
Write-Host "Appuyez sur une touche pour quitter..."