82 lines
4.9 KiB
Markdown
82 lines
4.9 KiB
Markdown
# Workstation Setup Improvement Report
|
|
|
|
## Architecture Review
|
|
|
|
### Critical Issues Resolved
|
|
|
|
- `X-Ways.WinHex` was removed from the WinGet catalog after its manifest hash repeatedly diverged from the vendor archive. WinHex is now installed from the official portable ZIP using rollback validation and a recorded SHA256 hash.
|
|
- Profile path construction no longer resolves unavailable `S:` or `P:` drives during startup. `-HealthCheck` can now report absent shared volumes instead of failing before diagnostics run.
|
|
|
|
### Major Issues Resolved
|
|
|
|
- Application, folder, shortcut, workstation profile, and Xhorse resource definitions moved from executable code to the seven version-controlled JSON files in [Config](Config).
|
|
- The VS Code extension inventory now always returns an array under strict mode.
|
|
- Portable downloads use a shared retry, timeout, resume (curl), size validation, and SHA256 manifest-recording path.
|
|
- Setup outcomes are captured in structured events and exported in CSV, JSON, and HTML.
|
|
|
|
### Minor Issues Resolved
|
|
|
|
- Removed legacy Win1/Win2/Win3 workspace assumptions in favor of the three named workstation profiles.
|
|
- Unified the generic portable executable and archive transfer behavior.
|
|
- Added optional PowerShell transcripts.
|
|
- Disabled USB selective suspend on AC and DC for the active power scheme, then reactivated that scheme. This prevents Windows power management from suspending a connected diagnostic interface during an authorized session.
|
|
- Multi-PROG documentation downloads now use `automotive-resources.json`, and the duplicate portable CLI `PATH` update was removed.
|
|
|
|
## Revalidation Results (2026-09-06)
|
|
|
|
- PowerShell parser validation completed without errors.
|
|
- All seven JSON configuration files completed `ConvertFrom-Json` validation.
|
|
- The installer catalog correctly separates portable utilities from licensed/OEM applications and launches vendor installers interactively.
|
|
- USB selective-suspend guidance is now backed by an executed configuration step; hibernation remains disabled.
|
|
- No live vendor downloads, hardware drivers, or vehicle communication tests were executed during this source revalidation. Those require the intended Windows installation, approved interface, and authorized bench or vehicle.
|
|
|
|
## Configuration Model
|
|
|
|
| File | Purpose |
|
|
| --- | --- |
|
|
| `apps-core.json` | Required WinGet applications |
|
|
| `apps-optional.json` | Optional WinGet apps and VS Code extensions |
|
|
| `portable-apps.json` | Direct and GitHub portable applications |
|
|
| `folder-structure.json` | Local, shared-data, and shared-portable folder layout |
|
|
| `shortcuts.json` | Folder, Sysinternals, and automotive-tool shortcut metadata |
|
|
| `workstation-profiles.json` | Named isolated workstation roles |
|
|
| `automotive-resources.json` | Xhorse, MVCI PRO, Autel, manuals, installers, and automotive references |
|
|
|
|
## Operational Modes
|
|
|
|
```powershell
|
|
.\Automotive-Workstation-Setup.ps1 -WorkstationProfile 'DailyTech & Tuning'
|
|
.\Automotive-Workstation-Setup.ps1 -WorkstationProfile 'ODIS & XENTRY'
|
|
.\Automotive-Workstation-Setup.ps1 -WorkstationProfile 'PIWIS & ISTA'
|
|
.\Automotive-Workstation-Setup.ps1 -HealthCheck
|
|
.\Automotive-Workstation-Setup.ps1 -BackupConfiguration
|
|
.\Automotive-Workstation-Setup.ps1 -RestoreConfiguration
|
|
```
|
|
|
|
All original parameters remain available. With no new mode switch, normal setup behavior continues.
|
|
|
|
## Reporting and Audit Artifacts
|
|
|
|
- `P:\Manifests\Hashes`: SHA256 records for managed portable downloads; falls back to `C:\Automotive\Config\Manifests\Hashes` when `P:` is unavailable.
|
|
- `P:\Manifests\Inventory`: health, setup, installed software, portable app, VS Code extension, driver, USB device, disk, environment, and service CSV outputs.
|
|
- Health and setup reports are also written as HTML and JSON.
|
|
- `P:\Automotive\Backups\Workstation`: ZIP configuration backups; falls back to local `C:\Automotive\Backups\Workstation`.
|
|
|
|
## Automotive Workstation Layout
|
|
|
|
Each isolated Windows installation uses only local `C:\Automotive`, shared data `S:` (`AUTO_DATA`), and shared portable content `P:` (`PORTABLE_APPS`). Profile-specific locations are:
|
|
|
|
- `S:\Automotive\Workstations\<profile>`
|
|
- `P:\PortableApps\Config\<profile>`
|
|
- `P:\Install\<profile>`
|
|
|
|
Commercial tool folders and backups are created for MultiPROG, WinOLS, StageX, Flex, PCMFlash, HxD, Ghidra, ImHex, SavvyCAN, and BusMaster. Licensed applications are never downloaded automatically.
|
|
|
|
## Optimization Summary
|
|
|
|
- GitHub lookup and app installation are skipped after expected executable validation.
|
|
- Download retries avoid immediate full-run failure for transient network faults.
|
|
- curl-backed downloads resume partial archives.
|
|
- Shared helper functions concentrate audit, error-handling, recovery, and transfer logic for targeted future testing.
|
|
|
|
Parallel download execution is deliberately not enabled: the current script updates shared logs, result lists, and common target volumes. Parallelizing it without process-safe state management would reduce reliability. |