Introduction
Les actions winget de Level s'exécutent en tant qu' SYSTEM et impose la portée machine sur toutes les opérations. La plupart des échecs d'installation et de mise à niveau sont liés à l'une de ces deux contraintes. Les comprendre dès le départ permet de résoudre la majorité des problèmes signalés.
Comment Level exécute Winget
Les actions d'installation, de mise à niveau et de désinstallation de packages de Level utilisent l'API Windows Package Manager de Microsoft. Elles ne dépendent pas d'une session PowerShell interactive ni de la configuration winget de l'utilisateur connecté. L'action distincte Installer Winget installe l'outil winget.exe en ligne de commande.
Deux choses sont toujours vraies pour chaque action de package winget de Level :
S'exécute en tant que
SYSTEM: Level exécute les opérations de package sousSYSTEMet non en tant qu'utilisateur connecté ou session administrateur standard. Tout comportement de package dépendant du contexte utilisateur ne fonctionnera pas de la même manière.Impose la portée machine: Level exige la portée machine pour les opérations de package. Seuls les packages disposant d'un programme d'installation applicable à la portée machine peuvent être installés ou mis à niveau via Level.
Ces deux contraintes expliquent presque tous les signalements du type «ça fonctionne dans PowerShell mais pas dans Level».
Problèmes courants
Le package s'installe via PowerShell mais pas via Level
Si vous pouvez installer un package en tant qu'utilisateur actuellement connecté, mais que l'action Level échoue, la différence tient au contexte utilisateur. Level s'exécute en tant que SYSTEM, qui dispose d'un environnement et d'un registre différents de ceux d'un utilisateur connecté. La plupart du temps, cela se manifeste sous la forme d'un problème de permission ou d'un chemin de profil utilisateur manquant.
Il n'existe aucune solution de contournement pour les packages qui nécessitent fondamentalement une session utilisateur. Pour ceux-là, envisagez une approche par script avec PsExec ou une tâche planifiée s'exécutant dans un contexte utilisateur spécifique.
Le package s'installe en tant qu'administrateur mais pas via Level
Level impose la portée machine. Un package peut s'installer correctement en tant qu'administrateur sans --scope machine mais échouent lorsque la portée machine est requise.
Testez-le directement pour confirmer :
winget install --scope machine -e --id PACKAGE_ID
Si cela échoue dans une session PowerShell administrateur, le package ne fournit pas de programme d'installation à portée machine. Level ne peut pas l'installer via l'action winget. Les seules options sont de trouver un ID de package alternatif prenant en charge la portée machine, ou de l'installer via une action Exécuter un script avec un autre programme d'installation.
L'action de mise à niveau affiche moins de packages que prévu
Level utilise la portée machine pour les analyses de mise à niveau ; seules les installations à portée machine apparaissent donc dans la liste des mises à niveau.
Vous pouvez vérifier en exécutant vous-même la commande équivalente :
winget upgrade --scope machine --all
Si les résultats correspondent à ce qu'affiche Level, Level est exact. Les packages installés dans une portée utilisateur n'apparaîtront pas.
L'installation ou la mise à niveau du package expire
Si la sortie de l'action indique operation timed out, Windows Package Manager n'a pas terminé l'opération de package dans un délai d'environ 30 minutes. Cela se produit généralement lorsqu'un programme d'installation se bloque ou attend une interaction utilisateur qui ne peut pas être fournie pendant que Level s'exécute sans interface en tant que SYSTEM.
Examinez la sortie de l'action pour identifier un processus bloqué ou un message indiquant que l'application est en cours d'utilisation. Fermez l'application et réessayez lorsque cela est possible. Si le même package expire de façon répétée, ajoutez son ID de package à Package(s) exclus dans une action Tout mettre à niveau et déployez-le avec le programme d'installation silencieux pris en charge par le fournisseur ou une action Exécuter un script.
Messages d'erreur courants
Erreur | Ce que cela signifie | Que faire |
| Le package ne fournit pas de programme d'installation éligible pour cet appareil et cette portée machine. | Testez le package avec la commande de portée machine ci-dessus. Utilisez un autre ID de package ou le programme d'installation du fournisseur si cela échoue également. Excluez-le de Tout mettre à niveau s'il continue à être sélectionné. |
| Le manifeste du catalogue et le programme d'installation téléchargé ne correspondent plus, souvent parce que le fournisseur a remplacé le fichier avant la mise à jour du catalogue. | Réessayez plus tard. Si l'erreur persiste, excluez le package jusqu'à ce que son manifeste en amont soit corrigé. |
| Le package requiert un emplacement d'installation que l'action sans assistance ne peut pas fournir. | Utilisez un autre package ou déployez le programme d'installation du fournisseur avec un script qui fournit l'emplacement requis. Excluez-le de Tout mettre à niveau. |
| L'installation actuelle du package ne peut pas être mise à niveau via le chemin sans assistance disponible. | Utilisez la procédure de mise à niveau prise en charge par le fournisseur ou une automatisation personnalisée. Excluez le package de Tout mettre à niveau pour éviter des échecs répétés. |
| Le programme d'installation du fournisseur a retourné une erreur. Ces erreurs sont générales ; la cause exacte dépend du package. | Examinez la sortie de l'action et les journaux du programme d'installation du fournisseur. Fermez l'application ou terminez un redémarrage en attente lorsque la sortie l'indique. Utilisez un programme d'installation silencieux pris en charge par le fournisseur si l'échec se répète. |
| Windows Installer est occupé par un autre package ou une opération Windows Update. | Laissez l'autre installation se terminer, puis réessayez. Évitez de planifier les fenêtres d'installation de Winget et de Windows Update au même moment. |
Exclure un package des mises à jour automatiques
L'action Mettre à niveau le package Winget dispose d'un champ Package(s) exclus . Saisissez un ou plusieurs ID de package et ces packages seront ignorés lors de l'exécution de la mise à niveau, sans nécessiter d'épinglage ni de solutions de contournement en ligne de commande.
Vérifier si un package prend en charge la portée machine
La vérification définitive est le manifeste du package dans le dépôt winget-pkgs. Recherchez InstallerScope: machine dans le manifeste. S'il est absent ou défini sur user, l'action winget de Level ne pourra pas l'installer.
Le raccourci pratique : exécutez la commande winget install --scope machine ci-dessus dans une session PowerShell administrateur. Si cela réussit, cela fonctionnera dans Level.
FAQ
Level utilise-t-il le winget Microsoft standard ou sa propre version ? Les actions de package de Level utilisent l'API Windows Package Manager de Microsoft. L'action distincte Installer Winget installe l'outil autonome
winget.exeen ligne de commande. L'exécution d'une action de package ne garantit pas quewinget.exeest disponible sur lePATH.Je ne trouve pas d'ID de package. Où chercher ? Recherchez dans le dépôt winget-pkgs ou exécutez
winget search <name>dans une session PowerShell sur un appareil où l'interface en ligne de commande autonome est installée. L'ID que vous trouvez est celui à saisir dans l'action Level.Puis-je exécuter des commandes winget directement depuis le terminal de Level ? Oui, lorsque
winget.exeest installé et disponible sur l'appareil. Le terminal en arrière-plan de Level s'exécute en tant queSYSTEM, donc les contraintes de portée machine et de contexte SYSTEM s'appliquent également. Les actions de package utilisent l'API Windows Package Manager plutôt que votre processus de terminal ; utilisez donc des commandes directes à titre de diagnostic plutôt que de supposer que chaque résultat sera identique.Un package a été récemment ajouté à winget-pkgs mais Level ne l'affiche pas comme disponible. Les données du catalogue de Level peuvent légèrement accuser un retard par rapport au dépôt communautaire. Si un package très récent n'apparaît pas, vérifiez si la portée machine est déjà définie dans le manifeste.

