Introduction
Les actions winget de Level s'exécutent en tant qu' SYSTEM et impose la portée machine pour 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 paquets 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 Installer Winget installe l'outil winget.exe en ligne de commande.
Deux conditions sont toujours vérifiées pour chaque action de paquet winget de Level :
S'exécute en tant que
SYSTEM: Level exécute les opérations sur les paquets sous le compteSYSTEMet non en tant qu'utilisateur connecté ou session administrateur standard. Tout comportement de paquet dépendant du contexte utilisateur ne fonctionnera pas de la même façon.Impose la portée machine: Level exige la portée machine pour les opérations sur les paquets. Seuls les paquets 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 rapports du type « ça fonctionne dans PowerShell mais pas dans Level ».
Problèmes courants
Le paquet s'installe via PowerShell mais pas via Level
Si vous pouvez installer un paquet en tant qu'utilisateur actuellement connecté mais que l'action Level échoue, la différence réside dans le 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 par un problème de permission ou un chemin de profil utilisateur manquant.
Il n'existe pas de contournement pour les paquets qui nécessitent fondamentalement une session utilisateur. Pour ceux-là, envisagez une approche basée sur un script avec PsExec ou une tâche planifiée s'exécutant dans un contexte utilisateur spécifique.
Le paquet s'installe en tant qu'administrateur mais pas via Level
Level impose la portée machine. Un paquet 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 en mode administrateur, le paquet 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 identifiant de paquet alternatif prenant en charge la portée machine, ou de l'installer via une action Exécuter un script avec un programme d'installation différent.
L'action de mise à niveau affiche moins de paquets que prévu
Level utilise la portée machine pour les analyses de mise à niveau, de sorte que seules les installations à portée machine apparaissent 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 que Level affiche, Level est exact. Les paquets installés sous une portée utilisateur n'apparaîtront pas.
L'installation ou la mise à niveau du paquet expire
Si la sortie de l'action indique operation timed out, Windows Package Manager n'a pas terminé l'opération sur le paquet 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 en mode sans interface en tant que SYSTEM.
Examinez la sortie de l'action pour identifier un nom de 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 paquet expire à plusieurs reprises, ajoutez son identifiant de paquet à Paquet(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 à la place.
Messages d'erreur courants
Erreur | Signification | Que faire |
| Le paquet ne fournit pas de programme d'installation éligible pour cet appareil et cette portée machine. | Testez le paquet avec la commande à portée machine ci-dessus. Utilisez un identifiant de paquet différent ou le programme d'installation du fournisseur si cela échoue également. Excluez-le de Tout mettre à niveau s'il continue d'ê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 ultérieurement. Si l'erreur persiste, excluez le paquet jusqu'à ce que son manifeste en amont soit corrigé. |
| Le paquet nécessite un emplacement d'installation que l'action sans surveillance ne peut pas fournir. | Utilisez un autre paquet 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 paquet ne peut pas être mise à niveau via le chemin sans surveillance disponible. | Utilisez la procédure de mise à niveau prise en charge par le fournisseur ou une automatisation personnalisée. Excluez le paquet 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ériques, donc la cause exacte dépend du paquet. | Examinez la sortie de l'action et les journaux du programme d'installation du fournisseur. Fermez l'application ou finalisez 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 reproduit. |
| Windows Installer est occupé avec un autre paquet ou une opération Windows Update. | Attendez la fin de l'autre installation, puis réessayez. Évitez de planifier les fenêtres d'installation de Winget et de Windows Update en même temps. |
Exclure un paquet des mises à jour automatiques
L'action Mettre à niveau un paquet Winget dispose d'un champ intégré Paquet(s) exclus . Saisissez-y un ou plusieurs identifiants de paquets et ces paquets seront ignorés lors de l'exécution de la mise à niveau, sans qu'il soit nécessaire d'utiliser des épingles ou des contournements en ligne de commande.
Vérifier si un paquet prend en charge la portée machine
La vérification définitive consiste à consulter le manifeste du paquet 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 dans une session PowerShell en mode 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 paquet de Level utilisent l'API Windows Package Manager de Microsoft. L'action Installer Winget installe l'outil autonome
winget.exeen ligne de commande. L'exécution d'une action de paquet ne garantit pas quewinget.exeest disponible surPATH.Je ne trouve pas d'identifiant de paquet. Où dois-je 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'identifiant 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'y appliquent également. Les actions de paquet utilisent l'API Windows Package Manager plutôt que votre processus de terminal, donc utilisez les commandes directes comme outil de diagnostic plutôt que de supposer que chaque résultat sera identique.Un paquet a été récemment ajouté à winget-pkgs mais Level ne l'affiche pas comme disponible. Les données du catalogue de Level peuvent être légèrement en retard par rapport au dépôt de la communauté. Si un paquet très récent n'apparaît pas, vérifiez si la portée machine est déjà définie dans le manifeste.

