124 Commits

Author SHA1 Message Date
tomas.kracmar 122aa2d4e3 fix(reporting): add Platform column and clean up Windows artifacts
- Export-SettingsReport.py: add Platform column for Settings Catalog
  (platforms field) and legacy policies (platform/platformType or
  @odata.type inference)
- MSGraph.psm1: store GraphMetaData.xml in cross-platform data folder
  (Get-CloudApiDataFolder) instead of literal %LOCALAPPDATA% path
- MSALAuthentication.psm1: skip TokenCacheHelperEx on non-Windows with
  an info log instead of failing on missing ProtectedData.dll
- .gitignore: remove literal %LOCALAPPDATA% patterns
- AGENTS.md, CHANGELOG: document reporting and cross-platform fixes
2026-06-22 11:56:55 +02:00
tomas.kracmar d3e0769799 release: v4.1.0 — restructure entry points, add CIS baselines, reporting tools and fzf hints
- Restructure launchers: Start-IntuneToolkit.ps1 moves to repo root;
  Start-HeadlessIntune.ps1 moves to Scripts/; TUI helper moves to Scripts/Private/
- Add AGENTS.md with project architecture, entry points, and security notes
- Add CIS M365 baseline assets (CISM365-v7, M365-CIS-Rapid) and reporting scripts
- Add Python reporting utilities (Export-SettingsReport, Export-AssignmentReport,
  Export-ObjectInventoryReport) and CA wizard helpers
- Update Deploy-IntuneBaseline.ps1 with Merge conflict resolution, ReportPath,
  and optimized group loading
- Update Initialize-IntuneAuth.ps1 with -RotateSecret and configurable secret expiry
- Update Extensions for Settings Catalog definition auto-export
- Update README with v4.1.0, new entry points and script catalog
- Bump VERSION to 4.1.0
- Harden .gitignore against .DS_Store, __pycache__, .venv-pdf/, local exports,
  Settings.json and IntuneManagement.log
4.1.0
2026-06-14 15:24:42 +02:00
tomas.kracmar e333af978c Bump version to 4.1.0 v4.1.0 2026-04-16 15:43:34 +02:00
tomas.kracmar 70679cba48 v4.0.1: per-user app naming, auth deletion, TUI onboarding flow, PIM docs v4.0.1 2026-04-16 15:40:33 +02:00
tomas.kracmar 1ff059342f chore: bump VERSION to 4.0.1 4.0.1 2026-04-16 11:36:09 +02:00
tomas.kracmar ab6817f59b feat(ui): detect missing fzf and show installation hints 2026-04-16 11:34:03 +02:00
tomas.kracmar 15210313cd chore: clean ignored cache, refresh README, add VERSION 4.0.0 4.0.0 2026-04-16 11:02:54 +02:00
tomas.kracmar 18fc5190d8 feat(launcher): add 'Refresh tenant names' menu option
- Menu entry 13 re-queries Graph /organization for every saved tenant
- Updates cached TenantName values in Settings.json
- Refreshes the active tenant display in the menu header
2026-04-14 19:51:16 +02:00
tomas.kracmar e8ad3f6b96 feat(launcher): tenant picker with name resolution in TUI
- Start-IntuneToolkit.ps1 now shows a tenant picker as the first step
  when -TenantId is not provided.
- Lists saved tenants from Settings.json, attempting to display cached
  tenant names alongside GUIDs.
- Offers '[+ Onboard new tenant]' option for entering new tenants.
- Automatically resolves unknown tenant names via Graph /organization
  and caches them back to Settings.json for future use.
2026-04-14 19:43:54 +02:00
tomas.kracmar 6703625c00 fix(rename): guard Add prefix against double-prefixing
Skip objects whose displayName or description already starts with
the requested prefix. This makes Add prefix idempotent.
2026-04-14 19:02:06 +02:00
tomas.kracmar cd1c004f4b fix(rename): add retry logic for transient 5xx/429 errors
Settings Catalog and other Graph endpoints occasionally return 500
InternalServerError on PATCH. Retry up to 3 times with a 2s delay
to improve reliability for bulk rename operations.
2026-04-14 18:58:20 +02:00
tomas.kracmar 07c25e897a fix(assignments): use bulk /assign endpoint for removals on all types
Settings Catalog and other bulk-assign types do not support DELETE on
individual assignments. Removal now reloads existing assignments,
filters out selected targets, sanitizes remaining payloads, and
re-POSTs to <API>/<id>/assign. This mirrors the add flow and works
universally across all supported object types.
2026-04-14 18:50:02 +02:00
tomas.kracmar 814c1d116c fix(tui): remove space:toggle binding from fzf to allow searching with spaces
--bind=space:toggle prevented typing spaces in search queries.
fzf --multi already supports Tab for selection by default.
2026-04-14 18:44:54 +02:00
tomas.kracmar 33e1118cc6 fix: restore .value access when using -AllPages on group queries
Invoke-GraphRequest with -AllPages returns the full response object
with accumulated items in .value, not a flat array.
2026-04-14 18:39:50 +02:00
tomas.kracmar 77f7372d44 fix: fetch all groups via -AllPages for large tenants
Replaces default 100-item page limits and =999 workarounds
with -AllPages on group queries across assignment and baseline scripts.
Enables full fzf inline search/filter for group selection.
2026-04-14 18:36:23 +02:00
tomas.kracmar 773ab12901 fix(launcher): strip unsupported auth params when calling Initialize-IntuneAuth 2026-04-14 18:27:40 +02:00
tomas.kracmar 68a5af1af3 chore: ignore GraphMetaData.xml and CloudAPIPowerShellManagement cache files 2026-04-14 15:12:52 +02:00
tomas.kracmar e13d14edcb feat(toolkit): complete macOS Intune Toolkit v1
Core enhancements:
- Expanded default export/import scope to ~45 object types including DeviceManagementIntents
- Added -AllPages pagination support across Graph queries for large tenants
- Invoke-GraphRequest now throws on 4xx/5xx instead of silently returning null
- Added macOS Keychain fallback for secret retrieval in headless auth flow
- Added NameSearchPattern/NameReplacePattern mutation support through export/import forms

New toolkit scripts:
- Bulk-AppAssignment.ps1: bulk-assign apps to groups/All Users/All Devices
- Bulk-AssignmentManager.ps1: add/remove assignments for any policy type with correct @odata.type
- Backup-Restore-Assignments.ps1: JSON backup with cross-tenant group resolution
- Export-AssignmentsToCsv.ps1: CSV/Markdown documentation output
- Bulk-RenamePolicies.ps1: regex search/replace and prefix mutations
- Bulk-DeviceOperations.ps1: delete/retire/wipe/lock/sync with -WhatIf safeguards
- Start-IntuneManagementTui.ps1: interactive terminal UI for headless operations
- Create-IntuneManagementApp.ps1: helper for app registration setup

Updated existing scripts:
- Export-Policies.ps1 / Import-Policies.ps1: wired mutation params through
- Start-HeadlessIntune.ps1: integrated TUI and new parameter forwarding
2026-04-14 15:11:09 +02:00
tomas.kracmar 0ddd21ab14 feat(launcher): add baseline deployer to unified menu
- Adds 'Deploy baseline' and 'Deploy baseline (dry-run / WhatIf)' to Start-IntuneToolkit.ps1
- Ensures WhatIf flag is cleared between menu iterations
2026-04-14 15:05:15 +02:00
tomas.kracmar c4b8f4aaf6 feat(baseline): declarative Intune baseline deployer
- Add Deploy-IntuneBaseline.ps1 for YAML-driven policy + assignment deployment
- Add ConvertTo-IntuneBaseline.ps1 to convert export folders to baseline manifests
- Add example OpenIntuneBaseline YAML in Baselines/
- Supports mutations, group auto-creation, idempotency, and WhatIf mode
2026-04-14 14:59:29 +02:00
tomas.kracmar 87b7af25a7 feat(auth): sync full Graph permission set and patch existing apps
- Unified required Microsoft Graph app roles in Initialize-IntuneAuth.ps1
- Added permission patching for existing app registrations
- Logs the change and operations for audit
2026-04-14 12:15:14 +02:00
tomas.kracmar 9dace83cff Make browser auth app id optional 2026-04-08 19:10:45 +02:00
tomas.kracmar 239e3ec16e Add browser auth for headless runs 2026-04-08 16:09:30 +02:00
tomas.kracmar c803a00df7 Strip legacy UI and keep headless runtime 2026-04-08 15:35:04 +02:00
tomas.kracmar 8fe71c0078 Add headless macOS CLI workflow 2026-04-08 15:18:32 +02:00
Mikael Karlsson faffa95d8a Merge pull request #363 from Micke-K/Development
3.10.1 Release
2025-09-14 14:19:01 +10:00
Mikael Karlsson 485a9de855 3.10.1 2025-09-14 14:15:15 +10:00
Mikael Karlsson 951b583dd2 3.10.0.11
Added full support for BIOS Config polices eg export and edit file + documentation
2025-08-09 13:30:51 +10:00
Mikael Karlsson f27175d543 3.10.0.10
Added support for BIOS Confiuration policies
2025-08-06 20:19:13 +10:00
Mikael Karlsson 1ab13bf2dd 3.10.0.9
Fixed issue with Not Configured for Custom Compliance script.
Added option to skip date when generating MD document.
2025-08-03 20:42:46 +10:00
Mikael Karlsson 8952e2894a 3.10.0.8
Fix renaming Settings Catalog policies
2025-08-03 20:12:34 +10:00
Mikael Karlsson a0bac61ba4 Merge pull request #339 from MrR0bert/FixExportDirectoryNaming
Add Trim() to sanitize the organization displayName property
2025-08-03 19:12:08 +10:00
Mikael Karlsson 8fab983b25 Merge pull request #347 from brefra/Fix-Upload
Fix .intunewin uploads when using powershell 7.4+
2025-08-03 19:06:36 +10:00
Frank 6f6eba6959 Fix content upload at powershell 7.4+ 2025-07-29 21:08:56 +02:00
Mikael Karlsson b69cc227a4 3.10.0.7
Fixed issue with ADMX import and different enum format
Fixed issue with skipping Not Configured for Compliance Policies
Added support for documenting Compliance Policy V2 (Linux)
2025-07-28 21:11:17 +10:00
Mikael Karlsson 4253901249 3.10.0.6
Fixed import order for Compliance Scripts
2025-07-16 04:23:32 +10:00
Robert Kooistra cfb0e5f6e4 Moved trim of org displayName to the moment it is loaded instead of where it's used 2025-06-24 10:07:17 +02:00
MrR0b3rt 125d2e2b44 Forgot brackets before calling Trim() 2025-06-23 15:10:33 +02:00
MrR0b3rt 95c38a2b3d Add Trim() to sanitize the organization displayName property 2025-06-23 14:29:07 +02:00
Mikael Karlsson 9586ffb3fa 3.10.0.5
Removed deviceStates property for Conditional Access policy import. The property is depricated
2025-06-17 02:04:35 +10:00
Mikael Karlsson 5984acfca0 3.10.0.4
Fixed issue with Word Interop not loading
Added support for PDF output
2025-05-25 21:07:57 +10:00
Mikael Karlsson e1328ac7dd 3.10.0.3
Added documenting for file content eg MacOS Custom Settings
2025-05-03 15:42:03 +10:00
Mikael Karlsson 968fb4866c 3.10.0.2
Fixed issue with importing Security Baseline 24H2.
2025-04-19 14:53:57 +10:00
Mikael Karlsson 2169e91c9c 3.10.0
Fixed bad trimming
2025-03-16 20:59:19 +11:00
Mikael Karlsson ad5d6df95e 3.10.0
Added additional logging
2025-03-16 20:59:01 +11:00
Mikael Karlsson 9232769d5b Fixed Compare Issues
Fixed issues with Compare and Settings Catalog
2025-03-09 19:57:41 +11:00
Mikael Karlsson 06ab2c2023 Paging issues
Device settings does not return next page so get top 500
Found a rare issue where Settings Catalog could return next page after all items were returned. This caused the app to crash when scrolling the list.
2025-03-01 12:08:16 +11:00
Mikael Karlsson 8601a5b38e Initial 3.10.0 upload 2025-02-22 21:52:13 +11:00
Mikael Karlsson 17e9b786be Merge pull request #296 from Mykhailo-Roit/master
feat: replace_with_assignments import type
2025-01-12 17:20:36 +11:00
Mikael Karlsson e2c40b0a67 Merge pull request #290 from Systems-Liam/patch-1
Update DocumentationWordOptions.xaml
2025-01-12 17:17:14 +11:00