Page 1 sur 1

[Astuces] Winget, vous connaissez ?

Posté : 13 avr 2023 14:46
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 ... :))

Re: [Astuces] Winget, vous connaissez ?

Posté : 13 avr 2023 20:11
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
	}
}

Re: [Astuces] Winget, vous connaissez ?

Posté : 14 avr 2023 08:57
par Orimatema
Merci pour ce sujet bien expliqué; mais que penses-tu de chocolatey qui fait la même chose?

Re: [Astuces] Winget, vous connaissez ?

Posté : 14 avr 2023 08:59
par LaDidi21
@Orimatema :
winget est natif !
Et ton produit n'a rien à voir...

Re: [Astuces] Winget, vous connaissez ?

Posté : 14 avr 2023 09:24
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) !

Re: [Astuces] Winget, vous connaissez ?

Posté : 15 avr 2023 20:25
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 :)

Re: [Astuces] Winget, vous connaissez ?

Posté : 04 aou 2023 09:24
par ghisda

@sharky
Merci pour la découverte !