Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,24 @@ The format follows [Conventional Commits](https://www.conventionalcommits.org/)



## [1.2.2] - 2026-09-24

Patch release for the Intune Anomalies report.

### Changes

- **Autopilot device preparation (v2) is recognised.** The *Not in Autopilot* tab (was *No Autopilot Hash*) only lists devices with neither a hardware hash nor a corporate identifier.
- **Cloud PCs are left out of the BitLocker and Autopilot tabs**, where they were always false positives.
- **Every tab explains what it checks.**
- **Noncompliant reasons use the names from the Intune admin center**, e.g. *Require BitLocker* or *Is active (no compliance check-in in the last 31 days)*.

### Fixes

- **Noncompliant reason no longer shows "Unknown"** for devices that fail the built-in Default Device Compliance Policy.
- **Application failure percentages are correct** (100% was shown as 1%).

---

## [1.2.1] - 2026-06-18

Patch release - fixes a perf regression and a missing-data symptom in the Intune Anomalies report's compliance fetch, plus a layout fix that affects every report.
Expand Down
19 changes: 19 additions & 0 deletions Tests/Consistency.Tests.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,25 @@ Describe 'Public report cmdlet shape contracts' {
}
}

Describe 'Compliance setting friendly names' {
BeforeAll {
Remove-Module -Name 'RKSolutions' -ErrorAction SilentlyContinue
Import-Module (Get-RKSolutionsManifestPath) -Force
}

It 'No friendly name contains ", " (the Noncompliant tab splits reasons on it)' {
$bad = InModuleScope RKSolutions { $script:ComplianceSettingFriendlyNames.Values | Where-Object { $_ -like '*, *' } }
$bad | Should -BeNullOrEmpty
}

It 'Translates known rules and passes unknown ones through' {
InModuleScope RKSolutions {
ConvertTo-ComplianceSettingFriendlyName 'Windows10CompliancePolicy.BitLockerEnabled' | Should -Be 'Require BitLocker'
ConvertTo-ComplianceSettingFriendlyName './Vendor/MSFT/Custom/Thing' | Should -Be './Vendor/MSFT/Custom/Thing'
}
}
}

Describe 'BitLocker / LAPS anomaly resolver output contracts' {
# The HTML template emits <td> cells for each property in a specific order;
# if these resolvers ever stop emitting one of these columns, the rendered
Expand Down
2 changes: 1 addition & 1 deletion docs/CMDLET-REFERENCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ Connect first with **Connect-RKGraph**; this cmdlet uses the existing connection

## Get-IntuneAnomaliesReport

Generates an interactive HTML report covering Intune app failures, multi-user devices, missing Autopilot hashes, inactive devices, non-compliant devices, disabled primary users, BitLocker key escrow, Windows LAPS backup, and deprecated Settings Catalog settings.
Generates an interactive HTML report covering Intune app failures, multi-user devices, devices not registered for Autopilot, inactive devices, non-compliant devices, disabled primary users, BitLocker key escrow, Windows LAPS backup, and deprecated Settings Catalog settings.


| Parameter | Description |
Expand Down
15 changes: 15 additions & 0 deletions module/Private/Get-RKSolutionsReportTemplate.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -459,6 +459,21 @@ input:checked + .rk-theme-toggle-slider:before { transform: translateX(18px); }
[data-theme="dark"] .rk-stat-tile.t-pink .rk-stat-eyebrow { color: var(--tile-pink-eyebrow); opacity: 1; }
[data-theme="dark"] .rk-stat-tile.t-pink .rk-stat-caption { color: var(--tile-pink-caption); opacity: 1; }

/* --- Tab intro (what this tab checks) --- */
.rk-tab-intro {
background: var(--accent-soft);
border: 1px solid var(--border);
border-left: 3px solid var(--accent);
border-radius: 10px;
padding: 12px 18px;
margin-bottom: 16px;
font-family: 'Geist', -apple-system, sans-serif;
font-size: 0.85rem;
line-height: 1.5;
color: var(--text-body);
}
.rk-tab-intro strong { color: var(--text); }

/* --- Filter Bar --- */
.rk-filter-bar {
background: var(--bg-elevated);
Expand Down
Loading
Loading