Policies-Tab: Export/Import (Settings Catalog, Compliance, Config)
Build & Release MSI / build-msi (push) Canceled after 0s
Build & Release MSI / build-msi (push) Canceled after 0s
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>
This commit is contained in:
@@ -92,6 +92,8 @@ Settings → Verbindung
|
||||
| App Management | Haupt-Ansicht: Apps laden, Gruppen zuweisen / entfernen |
|
||||
| Group Management | Mitglieder anzeigen, exportieren, Benutzer hinzufuegen, CSV-Import |
|
||||
| App Report | Installationszaehler pro App, Geraete-Export als CSV |
|
||||
| Geräte | Geraete suchen, Detail-Panel, Aktionen (Sync, Wipe, …) |
|
||||
| Policies | Policies exportieren (JSON-Download) und importieren (Neuanlage) |
|
||||
|
||||
---
|
||||
|
||||
@@ -159,6 +161,47 @@ erika.muster@firma.de
|
||||
|
||||
---
|
||||
|
||||
## Policies (Export / Import)
|
||||
|
||||
Sichert Intune-Policies als JSON und legt sie in einem (ggf. anderen) Tenant
|
||||
neu an. Unterstuetzte Typen:
|
||||
|
||||
| Typ | Graph-Collection |
|
||||
|-------------------------|-----------------------------|
|
||||
| Settings Catalog | `configurationPolicies` |
|
||||
| Compliance Policies | `deviceCompliancePolicies` |
|
||||
| Konfigurationsprofile | `deviceConfigurations` |
|
||||
|
||||
### Export
|
||||
|
||||
- Tabelle laedt alle drei Typen; Suche + Typ-Filter grenzen ein
|
||||
- Policies per Checkbox auswaehlen → **Export**
|
||||
- **1 Policy** → eine JSON-Datei
|
||||
- **mehrere** → eine gebündelte JSON-Datei (`intune-policies_<Datum>.json`)
|
||||
- Zusaetzlich wird jeder Export server-seitig unter
|
||||
`%APPDATA%\IntuneAppManager-Web\policy-exports` archiviert
|
||||
|
||||
### Import *(nur Read/Write)*
|
||||
|
||||
- **Import…** → eine oder mehrere JSON-Dateien waehlen (einzeln oder Bundle)
|
||||
- Import legt die Policies **immer als neue Policy** an — bestehende Policies
|
||||
werden nie ueberschrieben
|
||||
- Ergebnis-Toast meldet Erfolg/Fehler pro Policy
|
||||
|
||||
> Beim Anlegen entfernt der Import instanzgebundene / schreibgeschuetzte Felder
|
||||
> (`id`, Zeitstempel, `version`, Zuweisungen, Status). Compliance-Policies
|
||||
> bekommen bei Bedarf einen Default-`scheduledActionsForRule`-Block, den Graph
|
||||
> beim Anlegen zwingend verlangt.
|
||||
|
||||
### Benoetigt Graph-Berechtigung
|
||||
|
||||
`DeviceManagementConfiguration.ReadWrite.All` (Import) bzw.
|
||||
`DeviceManagementConfiguration.Read.All` (nur Export). Der Scope wird beim Start
|
||||
automatisch zur Verbindung ergaenzt — in der Azure-App-Registration muss die
|
||||
Berechtigung aber vorhanden und (Admin-)zugestimmt sein.
|
||||
|
||||
---
|
||||
|
||||
## Architektur
|
||||
|
||||
```
|
||||
@@ -170,7 +213,8 @@ Intune Manager/
|
||||
│ ├── Graph.ps1 Microsoft Graph API Helpers
|
||||
│ ├── Server.ps1 HTTP-Server (HttpListener)
|
||||
│ ├── Router.ps1 Request-Routing
|
||||
│ └── Api.ps1 REST-API-Endpoints
|
||||
│ ├── Api.ps1 REST-API-Endpoints
|
||||
│ └── PolicyIO.ps1 Policy Export/Import (Compliance, Config, Settings Catalog)
|
||||
└── www/
|
||||
├── index.html SPA-Shell
|
||||
├── styles.css Dark Theme, Read-Only-Regeln
|
||||
@@ -204,8 +248,15 @@ Intune Manager/
|
||||
| GET | `/api/membership?targets=&groupId=` | Read | Mitgliedschafts-Status pruefen |
|
||||
| POST | `/api/membership/bulk` | Read | Mehrere Mitgliedschaften pruefen |
|
||||
| POST | `/api/assignments/apply` | **Write** | Geplante Zuweisungen ausfuehren |
|
||||
| GET | `/api/policies/settingscatalog` | Read+Cfg | Settings-Catalog-Policies auflisten |
|
||||
| GET | `/api/policies/compliance` | Read+Cfg | Compliance-Policies auflisten |
|
||||
| GET | `/api/policies/configuration` | Read+Cfg | Konfigurationsprofile auflisten |
|
||||
| POST | `/api/policies/export` | Read+Cfg | Ausgewaehlte Policies als JSON exportieren |
|
||||
| GET | `/api/policies/exports` | — | Server-Archiv der Exporte auflisten |
|
||||
| POST | `/api/policies/import` | **Write** | Policies als Neuanlage importieren |
|
||||
|
||||
> **Read+MDM** = benoetigt zusaetzlich `DeviceManagementManagedDevices.Read.All`
|
||||
> **Read+Cfg** = benoetigt `DeviceManagementConfiguration.Read.All` (Export) bzw. `.ReadWrite.All` (Import)
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user