Commit b4a6320
committed
/CURRENTUSER user-mode install with admin-layer drift detection
Add user-mode install support via Inno Setup's /CURRENTUSER flag:
Admin-layer drift detection (0 UAC when current):
- IsProjFSEnabled(): checks Client-ProjFS Windows optional feature
- IsEnableProjFSTaskCurrent(): queries registered task XML for hash marker
- NeedsAdminSetup(): combines both checks
- Self-elevates via /ADMINSTAGE=true only when drift detected
/CURRENTUSER mode (non-elevated):
- Deploys payload to %LocalAppData%\VFSForGit\Versions\{ver}\
- Creates Current junction + user PATH (HKCU)
- Sets GVFS_COMMON_APPDATA_ROOT and GVFS_SECURE_DATA_ROOT env vars
- Registers per-user \GVFS\AutoMount logon task
/ADMINSTAGE mode (elevated, minimal):
- Enables ProjFS feature
- Registers EnableProjFSOnAllDrives boot task from embedded XML
- Exits without deploying payload (caller handles deployment)
Build integration:
- BuildProjFSTaskXml MSBuild target generates task XML with hash marker
- Passes /DProjFSTaskXml to ISCC
System-mode (elevated) unchanged: deploys to Program Files with versioned
layout, same as Phase 2. PrivilegesRequiredOverridesAllowed=commandline
enables the /CURRENTUSER flag without changing default behavior.
Assisted-by: Claude Sonnet 4.5
Assisted-by: Claude Opus 4.6
Signed-off-by: Tyrie Vella <tyrielv@gmail.com>1 parent 8181c35 commit b4a6320
2 files changed
Lines changed: 507 additions & 155 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
| 7 | + | |
6 | 8 | | |
7 | 9 | | |
8 | 10 | | |
| |||
24 | 26 | | |
25 | 27 | | |
26 | 28 | | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
27 | 33 | | |
28 | | - | |
| 34 | + | |
29 | 35 | | |
30 | 36 | | |
31 | 37 | | |
| |||
0 commit comments