4 Commits

Author SHA1 Message Date
Ludwig Lehnert
7fc0602818 fix gui runspace cleanup
All checks were successful
Release / build-release (push) Successful in 3s
2026-07-01 13:02:48 +00:00
Ludwig Lehnert
3039562e91 fix gui install runspace
All checks were successful
Release / build-release (push) Successful in 5s
2026-07-01 12:18:59 +00:00
Ludwig Lehnert
91208323ab interactive loading bars and more; (fix)
All checks were successful
Release / build-release (push) Successful in 4s
2026-06-29 15:30:39 +00:00
Ludwig Lehnert
292bd12a4b interactive loading bars and more
All checks were successful
Release / build-release (push) Successful in 4s
2026-06-29 14:56:22 +00:00
4 changed files with 1129 additions and 230 deletions

View File

@@ -2,13 +2,16 @@
Windows self-service software catalog backed by `winget`.
Users install approved software through a small GUI or request helper. A SYSTEM scheduled task runs a named-pipe daemon, authenticates the connecting Windows user, validates requests against Group Policy, then runs `winget install --scope machine`.
Users install approved software through a small GUI or request helper. A SYSTEM scheduled task runs a named-pipe daemon, authenticates the connecting Windows user, validates requests against Group Policy, then queues work for a SYSTEM `winget` worker.
## What It Does
- Reads allowed software from GPO registry policy.
- Lets users install/uninstall only catalog entries allowed by policy.
- Installs required software automatically.
- Blocks user removal of required software.
- Queues install, uninstall, and upgrade actions.
- Shows current queue task and progress in the GUI.
- Runs `winget upgrade --all` every 2 hours.
- Tracks installed state from `winget export`, not from request history.

35
dist/setup.ps1 vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -17,7 +17,7 @@ cat > "$out" <<EOF
# ASCII-only bootstrap generated from setup.ps1. Do not edit.
[CmdletBinding()]
param(
[ValidateSet('Install','Daemon','UpgradeAll','ApplyPolicy','ProcessRequest')]
[ValidateSet('Install','Daemon','UpgradeAll','ApplyPolicy','ProcessQueue','ProcessRequest')]
[string]\$Mode = 'Install',
[ValidateSet('Install','Uninstall')]
[string]\$RequestAction = 'Install',

1317
setup.ps1

File diff suppressed because it is too large Load Diff