Skip to content

Add Windows Admin Center module (77-WindowsAdminCenter) - #44

Merged
TheAbider merged 1 commit into
masterfrom
feature/v1.108.0-wac
May 29, 2026
Merged

Add Windows Admin Center module (77-WindowsAdminCenter)#44
TheAbider merged 1 commit into
masterfrom
feature/v1.108.0-wac

Conversation

@TheAbider

Copy link
Copy Markdown
Owner

Summary

New module 77-WindowsAdminCenter installs and configures the Windows Admin Center gateway. Reachable from Roles & Features → [13] Windows Admin Center and via WACSetup / WACStatus.

  • Install from an operator-provided MSI (default) or — opt-in and confirmed — a download from Microsoft's official aka.ms URL. In both cases the MSI must pass an Authenticode check (signature Valid and signed by O=Microsoft Corporation) before msiexec runs, with an optional SHA-256 pin. Binds a port (443 default, 6516 offered) + a TLS cert (existing LocalMachine thumbprint, or installer-generated self-signed), and opens the firewall.
  • Status (WACStatus): JSON-aware service / port / listening state.
  • Uninstall: reversible (resolves the product code, msiexec /x).

Security

  • No unverified binary is ever executed — the Authenticode-Microsoft gate is mandatory regardless of source, and is re-verified inside the Dry-Run Apply closure so a file swapped between queue and commit can't slip through (TOCTOU closed during the pre-ship review).
  • Every state change is Dry-Run-aware and reversible — the install undo runs msiexec /x and removes the firewall rule RackStack opened (Domain+Private only; never operator/system rules).
  • msiexec args are passed as a discrete array (no injection); operator MSI paths are validated (rooted, .msi, no traversal/reparse).

Validation

  • Module count 77 → 78; CLI actions 189 → 191.
  • README / 34-Help / CONTRIBUTING / dist counts updated in lockstep — now enforced by the Section 174 doc-freshness guard (it would fail the suite otherwise).
  • 5025 / 5025 tests pass, 0 failures; PSScriptAnalyzer clean; monolithic parses clean.

Note

WAC's product packaging is shifting; this is a clean local-gateway install. Extension management and Azure-connected WAC are intentionally out of scope.

New module 77 installs and configures the Windows Admin Center gateway on
this host. Reachable from Roles & Features -> [13] Windows Admin Center and
via the WACSetup / WACStatus CLI actions.

  * Install the gateway from an operator-provided MSI (default) or, opt-in and
    confirmed, a download from Microsoft's official aka.ms URL. In BOTH cases
    the MSI must pass an Authenticode check (signature Valid AND signed by
    "O=Microsoft Corporation") before msiexec runs, with an optional SHA-256
    pin — re-verified inside the Dry-Run Apply closure so a swapped file can't
    slip through (no TOCTOU). The install binds a port (443 default, 6516
    offered) + a TLS cert (existing LocalMachine thumbprint, or installer-
    generated self-signed) and opens the firewall.
  * Status (WACStatus): JSON-aware service / port / listening state.
  * Uninstall: reversible (resolves the product code, msiexec /x).

Every state change is Dry-Run-aware and reversible — the install undo runs
msiexec /x and removes the firewall rule RackStack opened (Domain+Private
only; never operator/system rules). RackStack installs no unverified binary.

Wired into the loader, Header action set, entry-point dispatch (WACSetup /
WACStatus), Roles & Features menu (item 13), and menu runner. Module count
77 -> 78; CLI actions 189 -> 191; README / Help / dist counts updated in
lockstep (now enforced by the doc-freshness guard). 5025 tests, 0 failures;
PSScriptAnalyzer clean.
@TheAbider
TheAbider merged commit 362fa93 into master May 29, 2026
6 checks passed
@TheAbider
TheAbider deleted the feature/v1.108.0-wac branch May 29, 2026 21:34
@codecov

codecov Bot commented May 29, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant