[Astuces] Winget, vous connaissez ?

Vous créez ou partagez un tutorial, postez-le ici !
Répondre
Avatar du membre
Auteur du sujet
sharky
Nouveau
Nouveau
Messages : 132
Enregistré le : il y a 5 ans

[Astuces] Winget, vous connaissez ?

Message par sharky »

Les habitués de Linux connaissent la commande apt-get.
Winget, une commande intégrée à Windows depuis sa version 10, lui ressemble.
Doc Microsoft : https://learn.microsoft.com/fr-fr/windo ... er/winget/

Winget permet, aussi, d'installer et de mettre à jour des applications non Microsoft.
Il est possible de concevoir des scripts téléchargeant et installant les dernières sources.
Des mises à jour automatiques, en tâches planifiées pour des machines hors domaine/réseau entreprises, sont possibles.

Pour connaître ces possibilités, ouvrez le terminal (CMD ou Powershell) en administrateur.
Lancer

Code : Tout sélectionner

winget --help
Pour connaitre les applications de votre machine qui doivent être mises à jour :

Code : Tout sélectionner

winget upgrade
Pour réaliser une mise à jour :

Code : Tout sélectionner

winget upgrade [IDapp]
En mode silencieux :

Code : Tout sélectionner

winget upgrade -h [IDapp]
Mise à jour de toutes les applications en mode silencieux :

Code : Tout sélectionner

winget upgrade -h --all
Vous pouvez rechercher avec un nom d'applications et l'installer :

Code : Tout sélectionner

winget search graphi
Si vous devez préparer des PC et installer toujours les mêmes applications, avec un script :

Code : Tout sélectionner

winget install -h KDE.Krita
winget install -h KDE.KritaShellExtension
winget install -h XnSoft.XnViewMP
...
la dernière version, disponible sur internet, sera installée.

Plus d'info sur https://github.com/Kugane/winget et/ou https://github.com/Romanitho/Winget-AutoUpdate
Pour ceux que les lignes de commande rebutent, il existe une interface GUI : https://github.com/Romanitho/Winget-Install-GUI

Imaginez un PS1 qui contient les mises à jour de toutes vos applications

Code : Tout sélectionner

$name = '7-Zip'
$lines = winget list --name $name
if ($lines -match '\bVersion\s+Available\b') {
  $verinstalled, $verAvailable = (-split $lines[-1])[-3,-2]
  [pscustomobject] @{
    Name = $name
    InstalledVersion = [version] $verInstalled
    AvailableVersion = [version] $verAvailable
  }
  exit 1
} else {
  Write-Verbose -Verbose "No upgrade for $name available."
  exit 0
}
J'espère que cette information vous ouvrira de nouveaux horizons ... :))
Dernière modification par LaDidi21 il y a 1 an, modifié au total 1 fois.
Raison : Mise en français...
Avatar du membre
Auteur du sujet
sharky
Nouveau
Nouveau
Messages : 132
Enregistré le : il y a 5 ans

Message par sharky »

Re,

J'ai pris le temps d'adapter un script PS d'installation de mes applications.
Copiez-le et coller le code dans un fichier texte en le renommant l'extension en .ps1
Adaptez-le à vos besoins

Code : Tout sélectionner

#Install my apps
$apps = @(
	@{name = "JGraph.Draw" }, #draw.io
	@{name = "7zip.7zip" }, 
	@{name = "KDE.Krita" }, 
	@{name = "Notepad++.Notepad++" }, 
	@{name = "Microsoft.WindowsTerminal"; source = "msstore" }, 
	@{name = "OpenWhisperSystems.Signal" },				#Signal Destop
    @{name = "9NKSQGP7F2NH"; source = "msstore" },		# Whatsapp Desktop
	@{name = "CodecGuide.K-LiteCodecPack.Full" },		#K-Lite Codec Pack Full
	@{name = "Microsoft.PowerToys" },
	@{name = "Plex.Plex" }, 
    @{name = "9WZDNCRFJ3TJ"; source = "msstore" },      # Netflix
	@{name = "clsid2.mpc-hc" },							#MPC-HC 2.0.0 (64-bit)
    @{name = "9PMMSR1CGPWG"; source = "msstore" },      # HEIF-PictureExtension
    @{name = "9MVZQVXJBQ9V"; source = "msstore" },      # AV1 VideoExtension
    @{name = "9NCTDW2W1BH8"; source = "msstore" },      # Raw-PictureExtension
    @{name = "9N95Q1ZZPMH4"; source = "msstore" },      # MPEG-2-VideoExtension
    @{name = "9N4WGH0Z6VHQ"; source = "msstore" },      # HEVC-VideoExtensions
	@{name = "Microsoft.VCRedist.2015+.x86" },
	@{name = "Microsoft.DotNet.DesktopRuntime.6" },
	@{name = "Microsoft.VisualStudioCode" },
	@{name = "Microsoft.DotNet.DesktopRuntime.7" },
	@{name = "Microsoft.VCRedist.2015+.x64" },
	@{name = "Brave.Brave" },
	@{name = "Google.Chrome" },
	@{name = "Greenshot.Greenshot" },
);
Foreach ($app in $apps) {
	#check if the app is already installed
	$listApp = winget list --exact -q $app.name
	if (![String]::Join("", $listApp).Contains($app.name)) {
		Write-host "Installing:" $app.name
		if ($app.source -ne $null) {
			winget install --exact --silent $app.name --source $app.source
		}
		else {
			winget install --exact --silent $app.name 
		}
	}
	else {
		Write-host "Skipping Install of " $app.name
	}
}
Avatar du membre
Orimatema
Nouveau
Nouveau
Messages : 70
Enregistré le : il y a 3 ans

Message par Orimatema »

Merci pour ce sujet bien expliqué; mais que penses-tu de chocolatey qui fait la même chose?
Avatar du membre
LaDidi21
Modérateur
Modérateur
Messages : 13030
Enregistré le : il y a 15 ans

Message par LaDidi21 »

@Orimatema :
winget est natif !
Et ton produit n'a rien à voir...

-> Décryptage des liens du forum : extension "ThiWeb Crypt / Decrypt"™ ou Thiweb Live <-

Avatar du membre
Auteur du sujet
sharky
Nouveau
Nouveau
Messages : 132
Enregistré le : il y a 5 ans

Message par sharky »

Hello,

Comme le dit LaDidi21, winget est déjà dans Windows à la différence chocolatery que tu dois ajouter à ton système.

Tu peux toujours te baser sur winget et le combiner avec chocolatery en ajoutant wingetui
https://github.com/marticliment/WingetUI

Code : Tout sélectionner

winget install -h wingetui
Caractéristiques
  • WingetUI a la capacité d'installer, de mettre à jour et de désinstaller des packages de Winget, Scoop et Chocolatey. WingetUI détectera également si vos applications installées manuellement peuvent être mises à jour !
  • Il peut également mettre à niveau et désinstaller les packages précédemment installés, ainsi que désinstaller les applications Windows intégrées !
  • WingetUI a la capacité d'importer et d'exporter les packages de votre choix, afin que vous puissiez facilement les installer à l'avenir.
  • WingetUI prend en charge la gestion des buckets Scoop avec une interface.
  • Installez une ancienne version d'une application.
  • WigetUI affiche une notification lorsqu'il y a des mises à jour disponibles
  • Gérez vos mises à jour et packages installés à partir de son menu contextuel
  • L'utilisateur sera informé si l'installation/la mise à jour/la désinstallation d'une application s'est terminée avec succès ou non.
  • La possibilité de mettre en file d'attente les installations afin d'éviter les conflits.
  • Un thème sombre est disponible pour vous éviter de vous brûler les yeux. 😎
  • WingetUI a la capacité d'afficher des informations relatives au package (comme sa licence, le hachage SHA256, la page d'accueil, etc.) avant l'installation.
  • Il y a plus de 14000 packages disponibles (si winget, scoop et chocolatey sont activés) !
Avatar du membre
Orimatema
Nouveau
Nouveau
Messages : 70
Enregistré le : il y a 3 ans

Message par Orimatema »

Ok, pas de problème, je l'ai essayé en ligne de commande, ce n'est pas si compliqué
Effectivement mieux vaut un outil intégré qu'un nouveau logiciel
Merci pour la découverte :)
Avatar du membre
ghisda
Nouveau
Nouveau
Messages : 133
Enregistré le : il y a 2 ans

Message par ghisda »

@sharky
Merci pour la découverte !

Répondre

Qui est en ligne

Utilisateurs parcourant ce forum : kiko95, Nickwell et 4 invités