PowerShell Toolkit & Reference Templates
liquidware-ninja ships a cross-platform PowerShell module (scripts/tools/LiquidwareNinja.psm1), an endpoint diagnostic script for the Stratusphere Connector ID Key (Test-LwCidKeyHealth.ps1), and five reference JSON templates (templates/)—all tested offline with Pester 5.
PowerShell 7+Windows PowerShell 5.1 (CID check)Pester 5Zero Cloud Spend
Module Functions (LiquidwareNinja.psm1)
| Function | Product | What It Validates or Builds |
|---|---|---|
Test-LwPortabilityOverlap | ProfileUnity + FSLogix | Audits candidate Portability paths and enabled modules against templates/profileunity/fslogix-portability-guardrails.json to block FSLogix double-persistence and forbidden full-profile disk modules (ProfileDisk, VhdProfile). |
Export-LwPortabilityRuleset | ProfileUnity + FSLogix | Filters candidate Portability paths to strip any direct or child overlap with fslogixOwnedPaths and emits a clean liquidware-ninja-portability-ruleset/v1 object. |
Compare-LwProfileUnityConfig | ProfileUnity | Diffs two ProfileUnity configuration exports (sample-config-export.json shape) and reports added/removed modules, Portability paths, application restrictions, and iniSha256 digest changes before promotion. |
Test-LwFlexAppCandidate | FlexApp + Stratusphere | Scores an application for BaseImage (>80% user share), FlexAppAppAttach, FlexAppOne (offline required), VersionConsolidationFirst (>3 versions), or NotRecommendedForLayering (kernel drivers/boot services). |
New-LwFlexAppManifest | FlexApp | Builds and validates a liquidware-ninja-flexapp-package/v1 metadata manifest, enforcing 64-char hex SHA-256 digests and the Single Assignment System Rule. |
Get-LwAssignmentConflict | FlexApp + AVD | Detects applications simultaneously assigned in more than one delivery plane (AvdAppAttach, ProfileUnityFlexApp, NativeMsix). |
Get-LwSpotCheckThreshold | Stratusphere UX | Returns canonical Liquidware SpotCheck thresholds and their sources from templates/stratusphere/inspector-catalog.json, optionally filtered by metric name. |
ConvertTo-LwApiUrl | Stratusphere UX | Constructs URL-encoded https://<hub>/lwl/api?json=... Inspector queries with explicit date ranges and business-hour slices (StartTime / EndTime). |
Test-LwCommandCtrlBaseline | CommandCTRL | Validates a CommandCTRL endpoint configuration against templates/commandctrl/multisession-baseline.json (user consent, privacy exclusions, sampling interval, and Stratusphere coexistence). |
Endpoint Health Check (Test-LwCidKeyHealth.ps1)
Runs on both Windows PowerShell 5.1 and PowerShell 7+ to verify three things when a desktop or session host is missing from the Stratusphere Hub:
- Installation directory & certificate bootstrap: Checks
C:\Program Files (x86)\Liquidware Labs\Connector IDand inspectsca\public\mgrcert.pem/ca\cert.txt. - Agent service state: Verifies that
tntgrdorLwL.ConnectorIDis installed andRunning. - Hub callback reachability: Tests TCP 443 connectivity from the endpoint to the Hub or Collector address.
if (-not (Test-Path ~/liquidware-ninja)) { git clone https://github.com/nickprignano/liquidware-ninja.git ~/liquidware-ninja }
Set-Location ~/liquidware-ninja; git checkout -q main; git pull -q --ff-only
./scripts/tools/Test-LwCidKeyHealth.ps1 -HubAddress 10.60.0.4
Reference Templates (templates/)
| Template Path | Product | What It Defines |
|---|---|---|
profileunity/fslogix-portability-guardrails.json | ProfileUnity + FSLogix | Canonical list of profile directories owned by FSLogix Profile/ODFC containers and forbidden full-profile modules. |
profileunity/sample-config-export.json | ProfileUnity | Reference plain-text export shape (enabledModules, portabilityPaths, applicationRestrictions, iniSha256) for offline diffing. |
flexapp/flexapp-package.example.json | FlexApp | Example liquidware-ninja-flexapp-package/v1 metadata manifest for VHDX/CimFS packages and ring promotion. |
stratusphere/inspector-catalog.json | Stratusphere UX | Inspector IDs, default basis dimensions, sample columns, and SpotCheck thresholds. |
commandctrl/multisession-baseline.json | CommandCTRL | Multi-session security, privacy, and Stratusphere coexistence baseline. |