Files
wendeIT-scripting/Intune/Intune-App-Manager-Web/README.md
T
2026-06-17 07:40:52 +02:00

116 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Intune App-Manager – Web Edition
Modernes Web-Frontend fuer den Intune App-Zuweisungs-Manager.
PowerShell startet einen lokalen HTTP-Server, der das Frontend ausliefert
und die Microsoft Graph-Aufrufe ausfuehrt.
## Voraussetzungen
- Windows mit PowerShell 5.1 oder PowerShell 7+
- Modul `Microsoft.Graph.Authentication` (wird beim ersten Connect benoetigt):
```powershell
Install-Module Microsoft.Graph.Authentication -Scope CurrentUser -Force
```
- Browser (Edge, Chrome, Firefox)
## Start
```powershell
cd "c:\Temp\claude.code\Intune App Management\Intune-App-Manager-Web"
.\Start.ps1
```
Optionen:
| Parameter | Standard | Beschreibung |
|---------------|-----------------------------------------|---------------------------------------------|
| `-Port` | `8077` | Port des lokalen HTTP-Servers |
| `-TenantId` | (HanseMerkur Default) | Microsoft Entra Tenant-ID |
| `-ClientId` | (HanseMerkur Default) | App-Registrierung Client-ID |
| `-NoBrowser` | aus | Browser nicht automatisch oeffnen |
Beispiele:
```powershell
.\Start.ps1 -Port 8088
.\Start.ps1 -TenantId "..." -ClientId "..."
.\Start.ps1 -NoBrowser
```
Beenden: `Ctrl+C` im Terminal.
## Workflow
1. **Verbinden** – oben rechts klicken; Microsoft Login-Fenster oeffnet sich.
2. **Modus waehlen**: Abteilungen / RPA-Gruppen / Einzel-User.
3. **Ziele laden** – ueber "Laden" (User: in Suchfeld tippen).
4. **Ziele markieren** mit Checkboxen.
5. **Apps laden** – ueber "Laden" rechts neben "Apps".
6. **Pillen klicken** – jede gruene Pille bei einer App ist eine zugewiesene
Gruppe. Klick = "Ausgewaehlte Ziele dieser Gruppe hinzufuegen". Erneuter
Klick = entfernen.
7. **Required-Gruppe erstellen** – falls noetig, ueber "+ Required-Gruppe"
bei der App.
8. **Session pruefen** – rechts werden alle geplanten Operationen aufgelistet.
9. **Ausfuehren** – gruener Button rechts unten. HTML-Report erscheint
automatisch nach Abschluss.
## Pillen-Farben (App-Zeile)
| Farbe | Bedeutung |
|-------------|-------------------------------------------------------------------|
| Grau | Gruppe ist der App zugewiesen, Ziele sind keine Mitglieder |
| Gruen | Alle ausgewaehlten Ziele sind bereits Mitglied |
| Gelb | Einige Ziele sind Mitglied (Partial) |
| Cyan | Native Target (All Users / All Devices) – nicht aenderbar |
| Blau | Aktuell zur Session hinzugefuegt |
| Gestrichelt | "+ Required-Gruppe" Button |
## Architektur
```
Intune-App-Manager-Web/
├── Start.ps1 Entry Point
├── README.md diese Datei
├── src/
│ ├── Models.ps1 Hilfen / Datenklassen
│ ├── Graph.ps1 Microsoft Graph API Helpers
│ ├── Server.ps1 HTTP-Server (HttpListener)
│ ├── Router.ps1 Request-Routing
│ └── Api.ps1 REST-API-Endpoints
└── www/
├── index.html SPA-Shell
├── styles.css Modernes Dark Theme
└── app.js Frontend-Logik (Vanilla JS)
```
Reports werden in `%TEMP%\IntuneAppManager-Reports\` gespeichert und sind
ueber `http://localhost:<port>/reports/<datei>.html` erreichbar.
## REST-API (intern)
| Methode | Pfad | Zweck |
|---------|----------------------------------------------|------------------------------------|
| GET | `/api/status` | Verbindungsstatus |
| POST | `/api/connect` | Microsoft Graph verbinden |
| POST | `/api/disconnect` | Trennen |
| GET | `/api/groups` | Abteilungs-Gruppen (`abt-hm-*`) |
| GET | `/api/groups/rpa` | 3 vordefinierte RPA-Gruppen |
| POST | `/api/groups` | Neue Required-Gruppe erstellen |
| POST | `/api/groups/check` | Gruppen-Name pruefen |
| GET | `/api/groups/{id}/members` | Mitglieder einer Gruppe |
| GET | `/api/users?q=...` | User suchen |
| GET | `/api/apps` | Apps laden (cached) |
| GET | `/api/apps?refresh=true` | Apps neu laden |
| GET | `/api/membership?targets=...&groupId=...` | Mitgliedschafts-Status pruefen |
| POST | `/api/assignments/apply` | Geplante Zuweisungen ausfuehren |
## Hinweise
- **Single-User-App** – der lokale HTTP-Server nimmt nur eine Verbindung
zur Zeit zuverlaessig an. Den Browser-Tab bitte einzeln halten.
- **Auth lebt im PowerShell-Prozess** – Disconnect oder Schliessen des
Terminals beendet die Session.
- **Cache** – Apps werden im Server-Prozess gecached (Refresh-Knopf zum
Neuladen). Membership-Cache wird bei Aenderung der Ziel-Auswahl geleert.