Introducción
Las acciones de winget de Level se ejecutan como SYSTEM y aplican el alcance de la máquina en todas las operaciones. La mayoría de los errores de instalación y actualización se remontan a una de estas dos limitaciones. Comprenderlas de antemano resuelve la mayoría de los problemas reportados.
Cómo Level ejecuta Winget
Dos cosas siempre son verdaderas para cada acción de winget de Level:
Se ejecuta como
SYSTEM: Level ejecuta winget bajo la cuentaSYSTEM, no como un usuario conectado o una sesión de administrador estándar. Ningún comportamiento del paquete que dependa del contexto del usuario funcionará de la misma manera.Aplica el alcance de la máquina: Level agrega
--scope machinea todas las operaciones de winget. Solo los paquetes con un alcance de máquina definido en su manifiesto pueden ser instalados o actualizados a través de Level.
Estas dos limitaciones explican casi todos los reportes « funciona en PowerShell pero no en Level ».
Problemas comunes
El paquete se instala a través de PowerShell pero no a través de Level
Si puede instalar un paquete como el usuario actualmente conectado pero la acción de Level falla, la diferencia es el contexto del usuario. Level se ejecuta como SYSTEM, que tiene un entorno y registro diferente al de un usuario conectado. La mayoría de las veces esto aparece como un problema de permiso o una ruta de perfil de usuario faltante.
No hay solución para los paquetes que fundamentalmente requieren una sesión de usuario. Para esos, considere un enfoque basado en scripts con PsExec o una tarea programada que se ejecuta bajo un contexto de usuario específico.
El paquete se instala como administrador pero no a través de Level
Level aplica el alcance de la máquina. Un paquete puede instalarse correctamente como administrador sin --scope machine pero falla cuando se requiere el alcance de la máquina.
Pruébalo directamente para confirmar:
winget install --scope machine -e --id PACKAGE_ID
Si esto falla en una sesión de PowerShell de administrador, el paquete no proporciona un instalador de alcance de máquina. Level no puede instalarlo a través de la acción de winget. Las únicas opciones son encontrar un ID de paquete alternativo que admita el alcance de la máquina, o instalarlo a través de una acción Ejecutar Script con un instalador diferente.
La acción de actualización muestra menos paquetes de lo esperado
Level agrega --scope machine a los análisis de actualización, por lo que solo las instalaciones con alcance de máquina aparecen en la lista de actualización.
Puede verificar ejecutando el comando equivalente usted mismo:
winget upgrade --scope machine --all
Si los resultados coinciden con lo que muestra Level, Level es preciso. Los paquetes instalados bajo un alcance de usuario no aparecerán.
La instalación del paquete agota el tiempo en Level pero funciona a través de PowerShell de administrador
Esto es raro. Sucede cuando el instalador del paquete no maneja adecuadamente el modo silencioso/tranquilo y espera una interacción del usuario que nunca puede llegar, ya que Level se ejecuta como SYSTEM sin interfaz de usuario. No hay solución para esto — el problema está con el instalador mismo. Verifique los problemas abiertos del paquete en el repositorio de winget-pkgs.
Excluir un paquete de actualizaciones automáticas
La Paquete de actualización de Winget tiene un campo integrado Paquete(s) excluido(s) . Ingrese uno o más ID de paquetes allí y esos paquetes se omiten durante la ejecución de la actualización — no se necesita fijación ni soluciones alternativas de línea de comandos.
Verificar si un paquete admite el alcance de la máquina
La verificación definitiva es el manifiesto del paquete en el repositorio de winget-pkgs . Busque InstallerScope: machine en el manifiesto. Si está ausente o establecido en user, la acción de winget de Level no podrá instalarlo.
El atajo práctico: ejecute el winget install --scope machine anterior en una sesión de PowerShell de administrador. Si tiene éxito allí, funcionará en Level.
Preguntas frecuentes
¿Level utiliza el winget estándar de Microsoft o su propia versión? Level instala y administra su propia implementación de winget. La Instalar Winget (o cualquier otra acción de winget, que lo instala automáticamente) configura la versión administrada de Level. Esto garantiza un comportamiento consistente en sus dispositivos independientemente de la versión de winget (si la hay) que ya estaba presente.
No puedo encontrar un ID de paquete. ¿Dónde busco? Busque el repositorio de winget-pkgs o ejecute
winget search <name>en una sesión de PowerShell en un dispositivo donde está instalado el winget de Level. El ID que encuentre es lo que va en la acción de Level.¿Puedo ejecutar comandos de winget directamente desde la terminal de Level? Sí. La terminal de fondo de Level se ejecuta como
SYSTEM, por lo que las restricciones de alcance de máquina y contexto SYSTEM también se aplican allí. Pruebe primero los comandos en la terminal antes de incorporarlos en una automatización.Un paquete se agregó recientemente a winget-pkgs pero Level no lo muestra como disponible. La implementación de winget de Level puede quedarse ligeramente rezagada con respecto al repositorio comunitario. Si un paquete muy reciente no aparece, verifique si el
--scope machineestá definido en el manifiesto.

