Die Offboarding-Suche fand bisher nur managedDevices (Intune). Reine
Autopilot-Geräte (registriert, aber nicht/nicht mehr in Intune enrolled)
tauchten nie auf. Jetzt wird zusätzlich windowsAutopilotDeviceIdentities
durchsucht (Serial: contains(serialNumber), Name: startswith(displayName),
Fehler still ignoriert) und die Treffer werden — dedupliziert per Serial/
Autopilot-Id — gemergt. Für Autopilot-only-Treffer wird das Entra-Objekt per
azureAdDeviceId nachgeladen. offKey nutzt jetzt eine Fallback-Kette, da
Autopilot-only-Geräte keine intuneDeviceId haben.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Neuer Toolbar-Button "Gruppen zuweisen" im Policy-Tab: mehreren
ausgewählten Policies (typübergreifend) in einem Schritt dieselben
Include-/Exclude-Gruppen zuweisen.
- Zwei Modi: "Hinzufügen" (bestehende Zuweisungen werden gelesen und
gemergt, da Graph /assign Full-Replace ist) und "Ersetzen".
- Integrierte Include-Ziele "Alle Geräte" (allDevicesAssignmentTarget)
und "Alle Benutzer" (allLicensedUsersAssignmentTarget), dedupliziert
und mit Exclude-Gruppen kombinierbar.
- Invoke-PolicyAssignEndpoint um mode/allDevices/allUsers erweitert.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
choiceSettingCollectionValue fehlte in der Array-Key-Liste von
Repair-SettingsCatalogArrays. Beim PS-5.1-JSON-Roundtrip wurde ein
Ein-Element-choiceSettingCollectionValue zum Einzelobjekt entpackt, worauf
Graph den Import mit 400 "Property choiceSettingCollectionValue in payload has
a value that does not match schema" ablehnte (z. B. Default Defender Antivirus
Policy). Jetzt analog zu group-/simpleSettingCollectionValue behandelt.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Hinter authentifizierten Unternehmens-Proxys (NTLM/Kerberos) scheiterte der
Update-Check mit HTTP 407, weil Invoke-RestMethod keine Anmeldeinformationen
an den Proxy sendet. Jetzt werden die angemeldeten Windows-Credentials an den
System-Proxy durchgereicht; optionaler expliziter Proxy via settings.json ->
update.proxy.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Neue Spalte "Verwaltung" (Intune vs. Co-Managed) in der Geräteliste,
abgeleitet aus managementAgent; farbige Badges, sortierbar, im CSV-Export
und im Detail-Panel.
- Detail-Panel zeigt Autopilot-Daten (Registriert, Profil zugewiesen am,
letzter Kontakt) per Lookup über die Seriennummer. Ein echtes Importdatum
liefert Graph nicht; verfügbar sind nur diese Zeitstempel.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Offboarding: HTML-Report pro Geraet (New-OffboardHtmlReport) + reportUrl;
Dialog-Ergebnis pro Geraet gruppiert + Report-Link
- Update-Check: GET /api/update/check (Gitea releases/latest, Compare-SemVer);
Kopfzeilen-Badge bei neuer Version, Link zur Release-Seite; optionaler read-only Token
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Bulk-Offboarding aus dem Geraete-Tab (Checkboxen + Alle, POST /api/offboard/resolve)
- Fix "Geraete konnten nicht geladen werden" (400): managementState raus dem $select,
$orderby entfernt, Namensfilter-Fallback auf deviceName, beta-Endpoint
- Bessere Graph-Fehler-Diagnose (Graph-Body an die Meldung anhaengen)
- Offboard: Grund fuer nicht gefundene Autopilot-Zuordnung sichtbar (autopilotNote)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Policies zusammenfuehren (Settings Catalog -> eine neue Policy, Konfliktaufloesung)
- Geraete-Tab: Gruppen-Filter (Live-Suche) + CSV-Export der angezeigten Liste
- Group Management: bestehende Gruppen als Mitglied hinzufuegen (verschachtelt)
- Fix: Geraete "Invalid Date" (ISO-Normalisierung) + Datums-/Spalten-Sortierung
- Doku (README/CHANGELOG) + Version-Bump 0.1.31
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Bulk-Import von Policies (Batches + Fortschritt, Fehler-Isolierung)
- Export/Import-Treue via Raw-JSON (-OutputType Json), null-Collections-Strip,
Settings-Catalog-Reparatur + Korruptions-Erkennung, Git-Resolver
- macOS-Apps in Liste/Suche + Plattform-Filter
- "Gruppe"-Tab durchsucht alle Gruppen (Live-Suche) statt nur Praefix-Gruppen
- Bestehende Gruppe(n) direkt an Apps zuweisen inkl. Mehrfachauswahl
- Fix: Add-GraphAppAssignment merged bestehende Zuweisungen (/assign ersetzt sonst
die komplette Liste) -> kein Ueberschreiben mehr, ein Request fuer alle Ziele
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Neu:
- Umbenennen beim Import: Policy-Name vor dem Anlegen anpassbar
(Dialog "Policies importieren"), richtiges Namensfeld je Typ
Behoben:
- Geraete-Export im App Report: entfernter sync-Endpoint
getDeviceInstallStatusReport (400) -> async Export-Job
DeviceInstallStatusByApp; ZIP/CSV-Logik in Get-IntuneReportRows
- Darkmode-Kontrast im Zuweisungs-Dialog (Theme-Variablen statt fester Farben)
- Dialog-Breite: lange Policy-Namen brechen um statt H-Scroll
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Neuer Tab "Policies" zum Sichern und Wiederherstellen von Intune-Policies.
- Backend src/PolicyIO.ps1: typ-getrieben fuer configurationPolicies
(Settings Catalog), deviceCompliancePolicies und deviceConfigurations
- Export als JSON-Download (einzeln/Bundle) + Server-Archiv unter %APPDATA%
- Import per Datei-Upload, immer Neuanlage (nie ueberschreiben), robust fuer
Hashtable (PS7) und PSCustomObject (PS5.1); im Read-Only-Modus ausgeblendet
- Routen in src/Api.ps1; Config-Scope DeviceManagementConfiguration.* auch
nach Settings-Save sichergestellt
- Frontend: Tab + View, Suche/Typ-Filter/Sortierung, Auswahl, Download/Upload
- Version 0.1.25 (Start.ps1, CHANGELOG, README)
- build-local.ps1: x64-.NET-Runtime fuer wix auf ARM64-Windows + echter
Desktop-Pfad
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Suche ruft bei jeder Eingabe die API auf statt lokal zu filtern.
Seriennummer wird per exaktem eq-Filter parallel gesucht und mit
Namens-Treffern zusammengeführt (Graph unterstützt kein startswith
auf serialNumber).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Wipe-Button mit eigenem Modal: Checkbox ob Benutzerdaten behalten werden
(keepUserData). Suchfeld auf max-width 600px vergrößert.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Windows Autopilot Reset via wipe mit keepEnrollmentData:true.
Button nur bei Windows-Geräten sichtbar, separate Warnmeldung.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Neuer Haupttab "Geräte" mit Geräteliste (filterbar nach OS/Compliance),
Detail-Panel mit vollständigen Gerätedaten und Aktions-Buttons:
Sync, Neustart, Sperren, Diagnose, BitLocker-Rotation, Retire.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Neuer Tab "Benutzer" im Group Management: Benutzer suchen und alle
Gruppen anzeigen, in denen dieser Mitglied ist (transitiveMemberOf).
Gruppen filterbar, mit Typ-Badge (Sicherheitsgruppe/M365/Verteiler).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- App Report: Zahlen per AppInstallStatusAggregate Export Job (ZIP/CSV)
- Geräte-Export: getDeviceInstallStatusReport statt deviceStatuses
- Benutzersuche: ConsistencyLevel+$count für Umlaut-Kompatibilität
- Gruppen: Mitglieder entfernen in modalMembers und Group Explorer (gex)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>