web app mit hinzugefügt
This commit is contained in:
@@ -0,0 +1,115 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user