feat(doku): Anleitung, PDF und Ende-zu-Ende-Abnahme
Neun Kapitel unter docs/anleitung/ fuer Technik und Verwaltung, mit 35 Bildern aus `pnpm docs:screenshots` und einem Fehlerbehebungskapitel aus echten Meldungen. `pnpm docs:pdf` macht daraus 72 Seiten A4 — hell gedruckt, mit Deckblatt, Inhaltsverzeichnis und Seitenzahlen, ohne neue Abhaengigkeit. Die Ablaeufe pruefen ihre Voraussetzungen, bevor der erste startet: antwortet ein gebauter Stand, steht der Seed-Bestand, und liest der Server dieselbe Datenbank wie der Testprozess. Jeder Ablauf legt an, was er braucht, und raeumt es weg. Vier neue kommen dazu: Hauptablauf, Onboarding mit Vergleich der Zwischenablage, Rollen und 390 px auf achtzehn Seiten. Drei Fehler kamen dabei heraus. Das Projekt „handy" pruefte 412 px statt der verlangten 390. Ein angemeldeter Benutzer ohne Recht erfuhr nie, warum er abgewiesen wurde — die Meldung stand auf einer Seite, die ihn sofort weiterleitet; jetzt gibt es /kein-zugriff. Und der Verzeichnis-Ablauf schrieb die Attributzuordnung der ersten vorhandenen Quelle um, in einer echten Installation also der produktiven. 101 Ablaeufe in INTERN und 97 in DIENSTLEISTUNG, beide ohne Fehlschlag. Closes #18 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@@ -0,0 +1,88 @@
|
||||
# Erste Schritte
|
||||
|
||||
## Anmelden
|
||||
|
||||
Ruf die Adresse auf, die deine IT dir gegeben hat. Ohne Anmeldung landest du immer auf der
|
||||
Anmeldeseite.
|
||||
|
||||

|
||||
|
||||
Es gibt bis zu zwei Wege, und welche du siehst, hängt von der Einrichtung ab:
|
||||
|
||||
- **Mit … anmelden** — der Knopf oben trägt den Namen deines Anmeldeanbieters, etwa „Mit authentik
|
||||
anmelden“. Das ist der normale Weg: du gibst dein Passwort dort ein, nicht hier.
|
||||
- **E-Mail und Passwort** — ein lokales Konto, gedacht als Notfallzugang, wenn der Anbieter
|
||||
ausfällt. Felder: **E-Mail**, **Passwort**, dann **Anmelden**.
|
||||
|
||||
Steht dort „Es ist kein Anmeldeweg eingerichtet“, ist die Anwendung noch nicht fertig
|
||||
konfiguriert — das löst ein Administrator.
|
||||
|
||||
Warst du auf einer bestimmten Seite und deine Anmeldung ist abgelaufen, kommst du nach dem
|
||||
Anmelden genau dorthin zurück. Das gilt auch für einen gescannten Aufkleber: du landest hinterher
|
||||
auf der Geräteseite und nicht auf der Übersicht.
|
||||
|
||||
**Abmelden** geht über das Symbol neben deinem Namen, unten in der Seitenleiste; am Handy steht es
|
||||
im Menü.
|
||||
|
||||
## Der Aufbau der Oberfläche
|
||||
|
||||
Am Schreibtisch liegt links eine dunkle Seitenleiste, rechts der Inhalt. Ganz oben in der Leiste
|
||||
sitzt der Knopf **Scannen** — dort fängt der Techniker an. Darunter die Navigation:
|
||||
|
||||
| Eintrag | Was dort steht |
|
||||
|---|---|
|
||||
| **Übersicht** | was dringend ist, was bei dir liegt, woran zuletzt gearbeitet wurde |
|
||||
| **Läufe** | alle offenen, laufenden und abgeschlossenen Läufe |
|
||||
| **Vorlagen** | die Checklisten und ihre Versionen |
|
||||
| **Mitarbeiter & Geräte** | Personen und Geräte, über zwei Reiter umschaltbar |
|
||||
| **Kunden** | nur im Modus Dienstleistung |
|
||||
| **Archiv** | Volltextsuche über abgeschlossene und archivierte Läufe |
|
||||
| **Admin** | Einstellungen, Benutzer, Abteilungen, Verzeichnis — nur für Administratoren |
|
||||
|
||||
Was deine Rolle nicht darf, steht gar nicht in der Leiste. Ein ausgegrauter Eintrag heißt dagegen:
|
||||
diese Seite gibt es noch nicht.
|
||||
|
||||
Unten in der Leiste stehen dein Name, deine Rolle, der Knopf zum Abmelden und die Versionsnummer.
|
||||
|
||||
Am Handy wird aus der Leiste eine Kopfzeile: links das Zeichen, rechts der Knopf **Scannen** und
|
||||
daneben das Menü mit denselben Einträgen.
|
||||
|
||||

|
||||
|
||||
## Die Übersicht
|
||||
|
||||
Die Übersicht ist der Einstieg am Schreibtisch — das Gegenstück zum Aufkleber am Gerät. Sie ist
|
||||
nach Dringlichkeit sortiert und zeigt vier Blöcke, jeder mit höchstens fünf Läufen:
|
||||
|
||||
- **Überfällig** — Läufe, deren Fälligkeitsdatum verstrichen ist und die noch offen oder in Arbeit
|
||||
sind. Das ist das Einzige auf der Seite in Warnfarbe, und das ist Absicht: riefe jeder Block,
|
||||
riefe keiner.
|
||||
- **Mir zugewiesen** — was auf dich wartet. Zugewiesen wird beim Anlegen eines Laufs oder auf der
|
||||
Geräteseite.
|
||||
- **Zuletzt bearbeitet** — woran zuletzt gearbeitet wurde, auch von Kolleginnen und Kollegen.
|
||||
- **Schnellstart** — die Vorlagen, aus denen hier am häufigsten Läufe entstehen. Ein Klick führt
|
||||
in den Start-Dialog. Der Block erscheint nur, wenn du Läufe bearbeiten darfst.
|
||||
|
||||
Jede Zeile trägt den Status, bei Bedarf die Frist und einen Fortschrittsbalken („7 von 21“). Ein
|
||||
Klick öffnet den Lauf. Leere Blöcke verschwinden nicht, sondern sagen, warum sie leer sind — eine
|
||||
Seite, deren Abschnitte kommen und gehen, lässt sich nicht lesen.
|
||||
|
||||
## Die vier Rollen
|
||||
|
||||
Rechte hängen allein an der Rolle, und geprüft wird jede Anfrage neu gegen die Datenbank. Eine
|
||||
Rollenänderung wirkt also sofort, ohne neues Anmelden.
|
||||
|
||||
| Rolle | Darf |
|
||||
|---|---|
|
||||
| **Leser** | alles ansehen: Läufe, Vorlagen, Geräte, Personen, Archiv |
|
||||
| **Techniker** | dazu Läufe starten, abarbeiten, abschließen und archivieren; Geräte und Personen pflegen; Tags registrieren |
|
||||
| **Redakteur** | dazu Vorlagen anlegen, bearbeiten und veröffentlichen |
|
||||
| **Administrator** | alles: Benutzer, Verzeichnis, Abteilungen, Einstellungen, Kunden, Tag-Stapel, Geräte löschen — und als Einziger einen Lauf aus dem Archiv zurückholen |
|
||||
|
||||
Zwei Dinge liegen bewusst nur beim Administrator: das **Zurückholen aus dem Archiv**, weil das
|
||||
Archiv die Zusage ist, dass sich ein abgeschlossener Lauf nicht mehr ändert, und das **endgültige
|
||||
Löschen eines Geräts**, weil dabei ein Tag-Code für immer verbrennt.
|
||||
|
||||
Wichtig zu unterscheiden: **Benutzer** sind die Menschen, die Laufzettel bedienen und sich
|
||||
anmelden. **Mitarbeiter** (im Modus Dienstleistung: **Personen**) sind die Leute, für die Läufe
|
||||
geführt werden — die kommen meist aus dem Verzeichnis und melden sich hier nie an.
|
||||
@@ -0,0 +1,269 @@
|
||||
# Läufe abarbeiten
|
||||
|
||||
Ein Lauf ist eine Checkliste für einen konkreten Fall. Er wird vorbereitet, abgearbeitet,
|
||||
abgeschlossen und irgendwann archiviert. Dieses Kapitel geht diesen Weg von vorn nach hinten
|
||||
durch — am Schreibtisch und am Handy.
|
||||
|
||||
Ein Lauf hat vier Zustände:
|
||||
|
||||
| Zustand | Bedeutung |
|
||||
|---|---|
|
||||
| **offen** | vorbereitet und meist jemandem zugewiesen. Niemand arbeitet daran. |
|
||||
| **in Arbeit** | jemand hat ihn begonnen. |
|
||||
| **abgeschlossen** | fertig für jetzt. Notizen und Kommentare gehen weiter. |
|
||||
| **archiviert** | schreibgeschützt, für immer. |
|
||||
|
||||
„Abgeschlossen“ und „archiviert“ sind bewusst zwei Dinge. Nach dem Abschluss lässt sich noch eine
|
||||
Seriennummer berichtigen oder ein Kommentar nachtragen — das passiert oft. Erst das **Archivieren**
|
||||
macht einen Lauf unveränderlich.
|
||||
|
||||
## Die Laufliste
|
||||
|
||||

|
||||
|
||||
Unter **Läufe** stehen alle offenen, laufenden und abgeschlossenen Läufe. Archivierte stehen hier
|
||||
nicht — die findet das [Archiv](#im-archiv-suchen).
|
||||
|
||||
Gefiltert wird über die Zeile darüber: **Suche** (Titel, Ticket, Hostname oder Person), **Status**
|
||||
und das Häkchen **nur meine**. Danach **Filtern**; **zurücksetzen** räumt alles weg. Der Filter
|
||||
steht in der Adresse, ein Lesezeichen darauf funktioniert also.
|
||||
|
||||
Jede Zeile zeigt Titel, Status, gegebenenfalls „seit … fällig“, die Vorlage mit ihrer Version, das
|
||||
Gerät, die Person und den Fortschritt. Es werden höchstens 200 Läufe gezeigt; fehlt deiner, such
|
||||
nach Titel, Ticket, Hostname oder Person.
|
||||
|
||||
## Einen Lauf anlegen
|
||||
|
||||
Es gibt drei Wege, und der schnellste ist meist nicht dieser:
|
||||
|
||||
- **Am Gerät**: Aufkleber scannen, auf der Geräteseite eine Schnellstart-Kachel antippen. Der Lauf
|
||||
entsteht und beginnt sofort, mit Gerät und Besitzer, ohne eine einzige Eingabe. Siehe
|
||||
[Kapitel 03](03-qr-tags.md).
|
||||
- **Aus der Übersicht**: der Block **Schnellstart** führt mit vorgewählter Vorlage in den Dialog.
|
||||
- **Über den Knopf Lauf starten** in der Laufliste — der vollständige Weg, hier beschrieben.
|
||||
|
||||

|
||||
|
||||
Der Dialog fragt in der Reihenfolge, in der man denkt:
|
||||
|
||||
1. **Vorlage** — es stehen nur veröffentlichte Vorlagen zur Wahl, jeweils die zuletzt
|
||||
veröffentlichte Fassung. Steht dort nichts, gibt es noch keine veröffentlichte Vorlage; ein
|
||||
Entwurf ist noch niemandes Arbeitsanweisung.
|
||||
2. **Gerät (optional)** — oder „kein Gerät“. Wählst du ein Gerät, wird sein Besitzer als Person
|
||||
vorgeschlagen.
|
||||
3. **Person (optional)** — jemand aus dem Verzeichnis, oder „keine Person aus dem Verzeichnis“.
|
||||
4. **… oder Name als Freitext** — für ein Onboarding, bevor die Person im Verzeichnis steht. Eines
|
||||
von beidem, nicht beides. Der Freitextname lässt sich später mit dem AD-Konto verknüpfen.
|
||||
5. **Angaben zu diesem Lauf** — die Variablen der Vorlage. Ein Sternchen heißt Pflicht. Fragt die
|
||||
Vorlage nach `upn`, `sam`, `mail` oder `hostname`, gibt es den Knopf **Namen aus den Regeln
|
||||
vorschlagen**: er füllt leere Felder nach den Namensregeln des Hauses, ausgefüllte bleiben
|
||||
stehen.
|
||||
6. Aufgeklappt hinter **Titel, Ticket, Abteilung, Zuweisung und Fälligkeit** stehen die Beigaben.
|
||||
Bleibt der **Titel** leer, bildet Laufzettel ihn aus Vorlage, Gerät oder Person und Datum. Die
|
||||
**Abteilung** ist wichtiger, als sie aussieht: sie speist `{{ou}}` und `{{gruppen}}` in den
|
||||
Befehlen dieses Laufs.
|
||||
7. Im Modus Dienstleistung außerdem der **Kunde**.
|
||||
|
||||
**Lauf anlegen** legt ihn an und springt hinein. Er beginnt als **offen** — das ist die Zuweisung.
|
||||
Gestartet wird er erst, wenn ihn jemand zur Bearbeitung öffnet.
|
||||
|
||||
Ein Lauf hängt für immer an der Version, mit der er gestartet wurde. Eine spätere Veröffentlichung
|
||||
ändert ihn nicht, und den Wechsel auf eine neuere Version weist Laufzettel ausdrücklich ab. Für
|
||||
eine neuere Fassung startest du einen neuen Lauf.
|
||||
|
||||
## Die Abarbeitungsansicht
|
||||
|
||||

|
||||
|
||||
Oben stehen Titel, Vorlage mit Version, Gerät, Person und Ticket, darunter der Fortschrittsbalken
|
||||
und die Knöpfe. Welcher Knopf da ist, hängt vom Zustand ab:
|
||||
|
||||
| Zustand | Knopf |
|
||||
|---|---|
|
||||
| offen | **Lauf beginnen** |
|
||||
| in Arbeit | **Lauf abschließen** |
|
||||
| abgeschlossen | **archivieren** |
|
||||
| archiviert | **aus dem Archiv zurückholen** (nur Administrator) |
|
||||
|
||||
Daneben immer: der Umschalter **Kompakt** / **Ausführlich** und **Drucken**.
|
||||
|
||||
**Lauf beginnen** setzt den Lauf auf „in Arbeit“ und hält den Startzeitpunkt fest. Ein Lauf, den
|
||||
jemand nur aufschlägt, hat noch nicht begonnen — sonst sähe die Liste nach Arbeit aus, die niemand
|
||||
tut.
|
||||
|
||||
**Ausführlich** zeigt die Hilfetexte der Schritte, **Kompakt** blendet sie alle aus. Beim ersten
|
||||
Mal sind sie der eigentliche Wert, beim dritten Mal stehen sie im Weg.
|
||||
|
||||
### Abschnitte
|
||||
|
||||
Die Schritte stecken in Abschnitten mit zweistelliger Nummer: `01 · Vorbereitung`. Die Nummer kommt
|
||||
aus der Position und steht nirgends gespeichert. Ein Klick auf die Überschrift klappt den Abschnitt
|
||||
zu oder auf; daneben steht „3 von 7“. Abschnitte, in denen nichts mehr zu tun ist, sind beim
|
||||
Aufbau der Seite schon zu.
|
||||
|
||||
Enthält ein Abschnitt Befehlsschritte, gibt es **Alle Befehle als Skript kopieren** — einmal
|
||||
kopieren statt achtmal.
|
||||
|
||||
### Einen Schritt erledigen
|
||||
|
||||
Unter jedem Schritt stehen drei Pillen:
|
||||
|
||||
- **erledigt** — getan.
|
||||
- **nicht zutreffend** — trifft in diesem Fall nicht zu. Verlangt eine Begründung.
|
||||
- **fehlgeschlagen** — hat nicht funktioniert. Verlangt eine Begründung.
|
||||
|
||||
„erledigt“ speichert mit einem Klick. Bei den anderen zwei erscheint erst das Feld **Begründung**,
|
||||
dann der Knopf **Mit Begründung speichern**. Ohne Begründung steht im Archiv ein übersprungener
|
||||
Schritt ohne Grund — und genau das macht ein Archiv wertlos.
|
||||
|
||||
Ein Klick auf die bereits gesetzte Pille nimmt die Angabe zurück; das Zurücknehmen braucht keine
|
||||
Begründung.
|
||||
|
||||
**Jeder Schritt speichert einzeln.** Es gibt kein Gesamtformular und keinen Speichern-Knopf am
|
||||
Ende: ein verlorener Klick soll nicht zwei Stunden Haken kosten.
|
||||
|
||||
Ein rotes Sternchen am Titel heißt **Pflichtschritt**. Ein Pflichtschritt muss erledigt oder
|
||||
ausdrücklich als nicht zutreffend eingetragen sein, bevor sich der Lauf abschließen lässt.
|
||||
|
||||
### Werte erfassen
|
||||
|
||||
Je nach Schritt-Typ steht über den Pillen ein Eingabefeld — Text, Zahl, Auswahl oder Datum. Getippt
|
||||
wird, dann **Wert speichern**. Das ist ein eigener Knopf und kein automatisches Speichern: ein halb
|
||||
getippter Wert soll nicht in die Datenbank.
|
||||
|
||||
Eine Zahl außerhalb der erwarteten Grenzen wird **markiert, nicht abgewiesen** („Erwartet werden 8
|
||||
bis 64 GB“). Ein Rechner mit 4 GB statt der erwarteten 8 ist ein Befund, den der Lauf festhalten
|
||||
soll, kein Eingabefehler.
|
||||
|
||||
### Befehle kopieren
|
||||
|
||||

|
||||
|
||||
Ein Schritt vom Typ **Befehl** zeigt den fertigen Befehl in Monospace, mit allen Platzhaltern
|
||||
eingesetzt. **Befehl kopieren** legt ihn in die Zwischenablage, der Knopf bestätigt kurz mit
|
||||
„Kopiert.“. Der Text steht vollständig da, du kannst ihn also auch markieren.
|
||||
|
||||
Drei Hinweise können daneben stehen:
|
||||
|
||||
- **Ein Platzhalter ließ sich nicht einsetzen** — er steht als `{{name}}` im Befehl und muss vor
|
||||
dem Ausführen von Hand ersetzt werden. Das ist eine Warnung und keine Sperre; vielleicht setzt du
|
||||
den Wert selbst ein.
|
||||
- **Ein Passwort** — enthält der Befehl `{{generiertes_passwort}}`, entsteht das Passwort bei jeder
|
||||
Anzeige neu und wird **nirgends gespeichert**: nicht im Lauf, nicht im Kommentar, nicht im
|
||||
Protokoll, nicht im Ausdruck. Wer es nicht sofort weiterreicht, hat es verloren. Sobald sich die
|
||||
Seite neu aufbaut — auch nach dem Speichern eines Schritts — steht dort ein anderes.
|
||||
- **Der Befehl ließ sich nicht sicher füllen** — dann gibt es keinen Kopier-Knopf, sondern eine
|
||||
Fehlermeldung. Ein halb maskierter Befehl zum Kopieren wäre die gefährlichste aller Antworten.
|
||||
|
||||
### Einen ganzen Abschnitt überspringen
|
||||
|
||||
Am Ende jedes Abschnitts sitzt **Abschnitt trifft nicht zu**. Der Fall aus dem Alltag: im
|
||||
Onboarding gibt es zwei Konto-Abschnitte, und je nach Kunde trifft einer gar nicht zu. Du gibst
|
||||
eine Begründung ein und drückst **Abschnitt vermerken** — die Begründung steht danach an jedem
|
||||
Schritt des Abschnitts. Achtzehn Haken einzeln mit derselben Begründung zu versehen macht niemand,
|
||||
und wer es nicht macht, lässt sie weg.
|
||||
|
||||
### Kommentare
|
||||
|
||||
Zwei Orte, zwei Bedeutungen:
|
||||
|
||||
- **Kommentar zu diesem Schritt** — aufklappbar unter dem Schritt, für das, was genau dort
|
||||
aufgefallen ist.
|
||||
- **Kommentare zum Lauf** — der Kasten unten, für alles andere.
|
||||
|
||||
Beide fragen dasselbe: „Was sollte man später wissen?“ Dann **Kommentar hinzufügen**. Kommentare
|
||||
werden mit Name und Zeitpunkt festgehalten und lassen sich nicht löschen.
|
||||
|
||||
### Zwei Techniker am selben Lauf
|
||||
|
||||
Die Seite fragt alle zehn Sekunden nach Änderungen und lädt sich neu, wenn sich wirklich etwas
|
||||
geändert hat. Bei verstecktem Tab pausiert die Abfrage.
|
||||
|
||||
Steht ein erzeugtes Passwort auf dem Bildschirm, lädt sie **nicht** von selbst neu — stattdessen
|
||||
erscheint oben ein Streifen: „Jemand anderes hat an diesem Lauf etwas geändert. Beim Neuladen
|
||||
entsteht ein neues Passwort.“ Du entscheidest mit **Neu laden**, wann es passt.
|
||||
|
||||
### Einen Freitextnamen später verknüpfen
|
||||
|
||||
Läuft ein Onboarding auf einen Freitextnamen, erscheint oben **„…“ mit einem AD-Konto verknüpfen**.
|
||||
Zwei Wege: die Person aus der Liste wählen, oder — wenn das Konto gerade erst im Verzeichnis
|
||||
entstanden und noch nicht abgeglichen ist — ihren **UPN** eintragen. Danach **Verknüpfen**. Ohne
|
||||
das findet die Person in ihrer Historie später nichts wieder.
|
||||
|
||||
## Abschließen
|
||||
|
||||
**Lauf abschließen** geht nur, wenn kein Pflichtschritt mehr offen ist. Erledigt und „nicht
|
||||
zutreffend“ zählen beide, **fehlgeschlagen nicht** — ein fehlgeschlagener Schritt ist entweder zu
|
||||
beheben oder mit Begründung als nicht zutreffend einzutragen. Solange etwas offen ist, ist der
|
||||
Knopf gesperrt und darunter steht, was fehlt.
|
||||
|
||||
Wird danach eine Änderung nachgetragen, die einen Pflichtschritt wieder offen lässt, nimmt sich der
|
||||
Abschluss selbst zurück. Damit lügt „abgeschlossen“ nie.
|
||||
|
||||
## Archivieren — das ist endgültig
|
||||
|
||||
**archivieren** fragt nach: „Nach dem Archivieren ändert sich an diesem Lauf nichts mehr — kein
|
||||
Kommentar, keine Notiz, kein Schritt.“ Erst **Ja, archivieren** vollzieht es.
|
||||
|
||||
Danach ist der Lauf schreibgeschützt. Er zeigt für immer, was damals abgearbeitet wurde. Nur ein
|
||||
**Administrator** holt ihn mit **aus dem Archiv zurückholen** auf „abgeschlossen“ zurück, und das
|
||||
wird protokolliert.
|
||||
|
||||
Archiviere also erst, wenn wirklich alles drinsteht. Es gibt keinen Grund zur Eile: ein
|
||||
abgeschlossener Lauf steht auch im Archiv und ist durchsuchbar.
|
||||
|
||||
## Drucken
|
||||
|
||||
**Drucken** öffnet einen hellen Beleg auf A4, ohne Navigation, zum Abheften. Im Browser dann
|
||||
**Jetzt drucken**; wer ein PDF braucht, druckt in eine Datei.
|
||||
|
||||

|
||||
|
||||
Auf dem Blatt stehen Kopfdaten, alle Abschnitte mit Zustand, Wert und Notiz je Schritt und die
|
||||
Kommentare. **Ein erzeugtes Passwort steht dort nie** — an seiner Stelle steht
|
||||
`[Passwort – nicht gespeichert]`, und erzeugt wird auch keines. Auf einem Blatt, das jemand
|
||||
abheftet, darf keines stehen.
|
||||
|
||||
Von der Person stehen nur Name, UPN und Abteilung auf dem Beleg. Ein Ausdruck liegt herum, wird
|
||||
kopiert und weitergegeben; was darauf steht, ist aus der Hand gegeben.
|
||||
|
||||
## Im Archiv suchen
|
||||
|
||||

|
||||
|
||||
Das **Archiv** durchsucht abgeschlossene und archivierte Läufe — ihren Titel, die Notizen und Werte
|
||||
der Schritte und die Kommentare. Es zeigt zu jedem Treffer die Fundstelle mit dem Text drumherum:
|
||||
Wer im Archiv sucht, will nicht wissen, *dass* etwas passt, sondern *wo*.
|
||||
|
||||
Der **Suchbegriff** braucht mindestens zwei Zeichen; ohne Begriff wird nur gefiltert. Hinter
|
||||
**Weitere Filter** stehen Person, Abteilung, Gerät, Bearbeiter, Kunde und der Zeitraum
|
||||
(**abgelegt ab** / **abgelegt bis**). Als Ablage gilt der Zeitpunkt der Archivierung, sonst der des
|
||||
Abschlusses, sonst der des Anlegens — danach ist auch sortiert. Mit dem Häkchen **auch offene und
|
||||
laufende Läufe** kommen die noch nicht fertigen dazu.
|
||||
|
||||
Gezeigt werden höchstens 100 Treffer; steht das dabei, holt ein engerer Zeitraum oder ein genauerer
|
||||
Begriff die übrigen hervor.
|
||||
|
||||
## Am Handy
|
||||
|
||||
Die Abarbeitungsansicht ist für das Handy gemacht, weil dort gearbeitet wird: neben dem
|
||||
aufgeschraubten Rechner, im Serverraum, vor dem Drucker.
|
||||
|
||||

|
||||
|
||||
Was du wissen solltest:
|
||||
|
||||
- **Es gibt nie horizontales Scrollen.** Alles steht untereinander, auch bei 390 Pixeln Breite.
|
||||
Knöpfe und Pillen sind 44 Pixel hoch und mit dem Daumen zu treffen.
|
||||
- **Schalte auf Kompakt.** Ohne die Hilfetexte passen dreimal so viele Schritte auf den Schirm.
|
||||
- **Klapp erledigte Abschnitte zu.** Fertige Abschnitte sind beim Öffnen des Laufs schon zu; beim
|
||||
Nachtragen einer Notiz bleibt ein selbst aufgeklappter Abschnitt offen, auch wenn dazwischen
|
||||
gespeichert wird.
|
||||
- **Jeder Klick speichert sofort.** Bei wackligem WLAN ist das der Unterschied zwischen „ein Haken
|
||||
fehlt“ und „zwei Stunden fehlen“. Bleibt eine Pille nach dem Tippen ungesetzt, war die
|
||||
Verbindung weg — tippe sie noch einmal.
|
||||
- **Befehle kopieren** funktioniert auch am Handy, ist dort aber selten nützlich: den
|
||||
PowerShell-Befehl führst du ohnehin an einem Rechner aus. Nimm dafür den Weg über die
|
||||
Übersicht am Schreibtisch oder schicke dir den Lauf per Link.
|
||||
- **Der Einstieg ist der Aufkleber.** Scannen, Geräteseite, „Starten“ — dazu
|
||||
[Kapitel 03](03-qr-tags.md).
|
||||
@@ -0,0 +1,164 @@
|
||||
# QR-Aufkleber und Tags
|
||||
|
||||
Auf jedem Objekt klebt ein Aufkleber mit einem QR-Code und dem Code darunter zum Ablesen, etwa
|
||||
`LZ-7K3F9Q`. Objekt heißt: nicht nur PCs. Ein Serverschrank, ein Raum, eine Firewall oder ein
|
||||
Drucker bekommen genauso einen.
|
||||
|
||||
Im QR-Code steht nichts als die Adresse dieser Anwendung plus der Tag-Code. Kein Name, keine
|
||||
Seriennummer, kein Besitzer — ein Aufkleber hängt sichtbar am Gerät und wird von jedem Telefon
|
||||
gelesen, auch von einem fremden. Hinter der Adresse verlangt Laufzettel eine Anmeldung.
|
||||
|
||||
**Ein Tag-Code wird nie geändert und nie neu vergeben.** Auch nicht, nachdem das Gerät archiviert
|
||||
oder gelöscht wurde. Das ist der Grund, warum der Aufkleber die einzige Angabe am Gerät ist, die
|
||||
Jahre hält: Hostnamen ändern sich, Besitzer wechseln, Seriennummern werden abgeschrieben.
|
||||
|
||||
Im Code gibt es die Zeichen `0`, `O`, `1` und `I` nicht — sie sind zu leicht zu verwechseln.
|
||||
Groß- und Kleinschreibung ist beim Eintippen unerheblich.
|
||||
|
||||
## Zwei Wege, wie ein Tag entsteht
|
||||
|
||||
**Weg A — Gerät zuerst.** Du legst das Gerät in der Geräteliste an; der Tag-Code entsteht dabei und
|
||||
steht danach in der Erfolgsmeldung. Dann druckst du sein Etikett und klebst es auf. Siehe
|
||||
[Kapitel 05](05-mitarbeiter-geraete.md).
|
||||
|
||||
**Weg B — Aufkleber zuerst.** Du legst auf Vorrat einen Stapel Tags an, druckst den Bogen und
|
||||
klebst die Aufkleber auf, was gerade da ist. Wer später davorsteht, scannt und trägt ein, was es
|
||||
ist. Das ist der Weg für eine Lieferung von zwanzig Notebooks.
|
||||
|
||||
## Einen Stapel Tags anlegen
|
||||
|
||||
Das verlangt die Rolle **Administrator**: ein Stapel verbraucht unwiderruflich Tag-Codes. Der Weg
|
||||
dorthin steht in der Geräteliste unten („Aufkleber auf Vorrat drucken? **Tag-Stapel anlegen**“).
|
||||
|
||||

|
||||
|
||||
Unter **Stapel anlegen** steht die **Anzahl**, voreingestellt 50 — das sind gut zwei A4-Bogen und
|
||||
der übliche Vorrat. Höchstens 500 auf einmal. Im Modus Dienstleistung wählst du außerdem den
|
||||
**Kunden**. Dann **Stapel anlegen**.
|
||||
|
||||
Danach erscheint direkt daneben **Etiketten für diesen Stapel drucken** — genau diese Codes, nicht
|
||||
alles, was noch offen ist.
|
||||
|
||||
> **Jeder Tag verbraucht einen Tag-Code für immer**, auch einer, dessen Aufkleber nie geklebt wird.
|
||||
> Ein Stapel, den niemand klebt, ist verbraucht. Lege also so viele an, wie du wirklich aufklebst.
|
||||
|
||||
Darunter listet **Noch nicht zugeordnet** alle Tags, die auf ein Gerät warten. Jede Zeile führt über
|
||||
den Code zum Registrierformular und hat rechts **Einzeletikett** zum Nachdrucken. Über der Liste
|
||||
steht **Etiketten drucken** für den ganzen Vorrat.
|
||||
|
||||
Ein Tag ohne Gerät steht auch in der Geräteliste, dort mit dem Kennzeichen „Tag ohne Zuordnung“.
|
||||
|
||||
## Etiketten drucken
|
||||
|
||||
Es gibt zwei Formate, und die Druckansicht schaltet zwischen ihnen um:
|
||||
|
||||
| Format | Maße | Wofür |
|
||||
|---|---|---|
|
||||
| **Einzeletikett** | 62 × 29 mm, ein Stück je Seite | Etikettendrucker |
|
||||
| **A4-Bogen** | 3 × 8 Stück à 70 × 37 mm | Stanzbogen im Laserdrucker |
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Auf dem Etikett stehen der QR-Code, der Tag-Code zum Ablesen, Hostname oder Bezeichnung des Geräts,
|
||||
der Besitzer, das Wort „laufzettel“ und im Modus Dienstleistung das Kundenkürzel. Etiketten sind
|
||||
immer hell, auch wenn die Anwendung dunkel ist.
|
||||
|
||||
Vor dem Drucken:
|
||||
|
||||
- **Skalierung im Druckdialog auf 100 % stellen und Kopf- und Fußzeilen abschalten** — sonst sitzen
|
||||
die Etiketten neben ihrer Stanzung.
|
||||
- Steht oben eine rote Warnung **„APP_URL ist nicht gesetzt“**, brich ab und hol einen
|
||||
Administrator. Die QR-Codes zeigen dann ins Leere, und auf dem Bildschirm sieht das Etikett
|
||||
trotzdem richtig aus. Ein geklebter Aufkleber lässt sich nicht berichtigen.
|
||||
|
||||
Ein Etikett nachdrucken geht jederzeit: auf der Geräteseite über **Etikett drucken**, in der
|
||||
Tag-Liste über **Einzeletikett**. Auch das Etikett eines archivierten Geräts lässt sich weiter
|
||||
drucken — der Aufkleber am Karton im Lager soll lesbar bleiben. Zum Nachdrucken genügt die Rolle
|
||||
**Leser**; niemand soll für einen abgerissenen Aufkleber den Administrator fragen müssen.
|
||||
|
||||
## Einen Aufkleber scannen
|
||||
|
||||
Der Knopf **Scannen** steht an beiden Stellen ganz oben — in der Seitenleiste und am Handy in der
|
||||
Kopfzeile. Halte den Aufkleber ins Bild; Laufzettel springt von selbst weiter, sobald der Code
|
||||
erkannt ist.
|
||||
|
||||

|
||||
|
||||
Drei Dinge, die passieren können:
|
||||
|
||||
- **Der Code gehört zu einem Gerät** — du landest auf der Geräteseite.
|
||||
- **Der Code gehört zu einem vorgedruckten Tag** — du landest im Registrierformular.
|
||||
- **Es ist kein Laufzettel-Code** — es erscheint der Hinweis „Das ist kein Laufzettel-Tag. Halte den
|
||||
Aufkleber mit dem Code LZ-… ins Bild.“
|
||||
|
||||
Unter dem Kamerabild steht immer das Feld **Code eintippen**. Es ist der Weg, wenn die Kamera nicht
|
||||
will: kein HTTPS, verweigerte Berechtigung, Rechner ohne Kamera, ausgefallener QR-Leser. Dann tippst
|
||||
du den Code ab, der lesbar unter dem QR steht, und drückst **Öffnen**. Ein Scanner, der nicht
|
||||
startet, darf keine Sackgasse sein.
|
||||
|
||||
Am Schreibtisch brauchst du keine Kamera: in der Tag-Liste und in der Geräteliste führt der Code
|
||||
als Link dorthin, wohin auch der Scan führt.
|
||||
|
||||
## Einen unregistrierten Tag registrieren
|
||||
|
||||
Steht hinter dem Code noch kein Gerät, erscheint **Gerät registrieren**. Dafür braucht es die Rolle
|
||||
**Techniker**, **Redakteur** oder **Administrator**; einem Leser sagt die Seite, dass ihm die
|
||||
Berechtigung fehlt.
|
||||
|
||||

|
||||
|
||||
Fünf Angaben, mehr nicht — der Rest lässt sich später in der Geräteliste nachtragen:
|
||||
|
||||
- **Typ** — PC, Notebook, Server, Firewall, Switch, Drucker, Raum oder Sonstiges.
|
||||
- **Hostname** und **Bezeichnung** — eines von beiden genügt. Ein Raum oder ein Serverschrank hat
|
||||
keinen Hostname, ein Notebook keine Bezeichnung.
|
||||
- **Seriennummer** und **Inventarnummer**.
|
||||
- **Besitzer (optional)** — oder „niemand — Server, Raum oder Poolgerät“. Zur Wahl stehen nur
|
||||
Personen desselben Kunden.
|
||||
|
||||
Der **Tag-Code steht oben, aber nicht als Feld**: er ist schon gedruckt und geklebt, und jede
|
||||
Änderung daran wird abgewiesen.
|
||||
|
||||
**Gerät registrieren** führt direkt auf die Geräteseite.
|
||||
|
||||
## Die Geräteseite
|
||||
|
||||
Das ist das Ziel jedes gescannten Aufklebers — die Seite, die ein Techniker am Handy vor dem Gerät
|
||||
aufschlägt. Sie beantwortet in dieser Reihenfolge: Was ist das hier? Was wartet daran? Was kann ich
|
||||
sofort anfangen? Was war schon?
|
||||
|
||||

|
||||
|
||||
- **Kopf** — Name, Tag-Code, Typ, Besitzer, Modell, Serien- und Inventarnummer, Notizen. Rechts
|
||||
**Etikett drucken**. Hinter **QR-Code anzeigen** steht derselbe Code als Bild auf dem Schirm, für
|
||||
den Fall, dass der Aufkleber abgerissen ist.
|
||||
- **Zugewiesen** — was an diesem Gerät wartet. Ein offener Lauf hat den Knopf **Starten**: er setzt
|
||||
ihn auf „in Arbeit“ und führt hinein. Ein laufender hat **Weiter**, ein fertiger **Ansehen**.
|
||||
- **Schnellstart** — eine Kachel je Vorlage, die für diesen Gerätetyp hinterlegt ist. Ein Tipp legt
|
||||
den Lauf mit diesem Gerät und seinem Besitzer an und beginnt ihn, ohne eine einzige Eingabe.
|
||||
Steht auf der Kachel „fragt noch nach Angaben“, führt sie stattdessen in den Start-Dialog — dort
|
||||
sind Gerät und Person schon vorbelegt.
|
||||
- **Vorlage zuweisen** — für später oder für jemand anderen: Vorlage, **Techniker (optional)**,
|
||||
**Fällig am (optional)**, dann **Lauf zuweisen**. Der Lauf entsteht als **offen** und erscheint
|
||||
oben unter „Zugewiesen“.
|
||||
- **Historie** — die letzten 20 Läufe an diesem Gerät, mit Abschlussdatum und Fortschritt. Für die
|
||||
älteren und die archivierten nimm das [Archiv](02-laeufe-abarbeiten.md).
|
||||
|
||||
Ein archiviertes Gerät und ein Tag ohne Zuordnung nehmen keine neue Arbeit auf. Statt Formularen,
|
||||
die hinterher abgelehnt würden, steht dort dann der nächste Schritt.
|
||||
|
||||

|
||||
|
||||
## Am Handy
|
||||
|
||||
- **Scannen ist der Einstieg**, und der Knopf steht deshalb in der Kopfzeile immer da.
|
||||
- **Die Kamera braucht HTTPS.** Auf einer Adresse ohne Verschlüsselung gibt kein Browser sie frei —
|
||||
dann bleibt das Feld zum Eintippen.
|
||||
- **Freigabe verweigert?** Gib die Kamera in den Einstellungen des Browsers für diese Seite frei
|
||||
und lade neu.
|
||||
- Die rückwärtige Kamera wird von selbst genommen. Halte den Aufkleber in den hellen Rahmen in der
|
||||
Bildmitte; bei schlechtem Licht hilft ein Schritt zur Seite mehr als näher herangehen.
|
||||
- **Registrieren geht am Handy vollständig.** Du stehst vor dem Gerät und liest den Hostname vom
|
||||
Anmeldebildschirm ab — genau dafür sind es nur fünf Felder.
|
||||
@@ -0,0 +1,240 @@
|
||||
# Vorlagen bauen
|
||||
|
||||
Eine Vorlage ist die Checkliste selbst: was bei einer PC-Neuinstallation zu tun ist, in welcher
|
||||
Reihenfolge, mit welchen Hilfetexten und welchen Befehlen. Vorlagen anlegen, bearbeiten und
|
||||
veröffentlichen darf die Rolle **Redakteur** oder **Administrator**.
|
||||
|
||||
Die wichtigste Regel steht am Anfang, weil alles andere daraus folgt:
|
||||
|
||||
> **Eine veröffentlichte Version wird nie verändert.** Sonst zeigte ein alter Lauf Schritte, die es
|
||||
> damals nicht gab. „Bearbeiten“ legt deshalb eine vollständige Kopie als **Entwurf** an. Je Vorlage
|
||||
> gibt es höchstens einen Entwurf. Läufe starten nur an veröffentlichten Versionen und hängen für
|
||||
> immer an der Version, mit der sie gestartet wurden.
|
||||
|
||||
## Die Vorlagenliste
|
||||
|
||||

|
||||
|
||||
Gefiltert wird nach **Suche**, **Kategorie**, **Schlagwort** und mit dem Häkchen **auch
|
||||
archivierte**, dann **Filtern**.
|
||||
|
||||
Die Kennzeichen an einer Zeile sagen den Zustand:
|
||||
|
||||
| Kennzeichen | Bedeutung |
|
||||
|---|---|
|
||||
| **v3** | Version 3 ist veröffentlicht und gültig |
|
||||
| **noch nicht veröffentlicht** | es gibt nur einen Entwurf; daran lässt sich kein Lauf starten |
|
||||
| **Entwurf vorhanden** | es wird gerade an einer neuen Version gearbeitet |
|
||||
| **archiviert** | aus dem Angebot genommen |
|
||||
| **nur …** | gilt nur für einen Kunden (Modus Dienstleistung) |
|
||||
|
||||
Gibt es einen Entwurf, führt **Entwurf öffnen** direkt in den Editor — der häufigste Fall ist,
|
||||
weiterzuarbeiten an dem, was man gestern angefangen hat.
|
||||
|
||||
Unten auf der Seite steht **Vorlage anlegen**: **Name**, **Beschreibung (optional)**, **Kategorie
|
||||
(optional)**, **Schlagworte, mit Komma getrennt** und im Modus Dienstleistung **Nur für einen
|
||||
Kunden (optional)**. Die neue Vorlage beginnt als Entwurf. Namen sind nicht eindeutig; zwei
|
||||
Vorlagen dürfen gleich heißen.
|
||||
|
||||
## Die Vorlagenseite
|
||||
|
||||

|
||||
|
||||
Sie beantwortet drei Fragen auf einen Blick: Was ist gerade gültig? Wird gerade daran gearbeitet?
|
||||
Was wurde wann veröffentlicht?
|
||||
|
||||
**Bearbeiten** ist der wichtigste Knopf. Er erzeugt eine tiefe Kopie der letzten veröffentlichten
|
||||
Version als neuen Entwurf und führt in den Editor. Gibt es schon einen Entwurf, heißt der Knopf
|
||||
**Entwurf weiter bearbeiten** und führt genau dorthin — auch wenn zwei Redakteure gleichzeitig
|
||||
klicken.
|
||||
|
||||
Unter **Versionen** steht die Geschichte: Nummer, Veröffentlichungszeitpunkt und -person, die Zahl
|
||||
der Läufe und die Änderungsnotiz. Je Zeile **Ansehen** (beziehungsweise **Im Editor öffnen** beim
|
||||
Entwurf) und **Als JSON exportieren**.
|
||||
|
||||
Unter **Kopfdaten** stehen Name, Beschreibung, Kategorie, Schlagworte und die Kundenzuordnung. Sie
|
||||
hängen an der Vorlage, nicht an einer Version — ein Tippfehler im Namen kostet also keine neue
|
||||
Version. **Kopfdaten speichern** übernimmt sie.
|
||||
|
||||
Unter **Weiteres**:
|
||||
|
||||
- **Duplizieren** — legt eine neue Vorlage an, mit dem Inhalt der neuesten Version als Entwurf.
|
||||
Gut als Ausgangspunkt für eine Abwandlung.
|
||||
- **archivieren** / **wieder freigeben** — archiviert wird, was nicht mehr angeboten werden soll.
|
||||
Gelöscht wird nichts: an einer Vorlage hängen Läufe. Ein Entwurf einer archivierten Vorlage lässt
|
||||
sich noch bearbeiten, aber nicht veröffentlichen.
|
||||
- **Entwurf verwerfen** — mit Rückfrage. Der Entwurf ist danach weg und nicht wiederherstellbar;
|
||||
die veröffentlichte Version bleibt unberührt.
|
||||
|
||||
## Der Editor
|
||||
|
||||

|
||||
|
||||
Oben stehen Name, **Version N** und der Zustand — **Entwurf** oder **veröffentlicht** — und daneben
|
||||
**Nicht gespeichert** oder **gespeichert**.
|
||||
|
||||
Unten klebt eine Leiste mit **Speichern** und derselben Auskunft in Worten. **Es gibt kein
|
||||
automatisches Speichern**: eine halb umgebaute Vorlage soll nicht nebenbei zur Wahrheit werden.
|
||||
Solange etwas nicht gespeichert ist, fragt der Browser vor dem Verlassen der Seite nach.
|
||||
|
||||
Eine veröffentlichte Version öffnet der Editor nur lesend — mit denselben Feldern, nur
|
||||
schreibgeschützt. Oben steht dann, warum.
|
||||
|
||||
### Abschnitte
|
||||
|
||||
Ein Abschnitt fasst die Schritte zusammen, die zusammengehören. **Abschnitt hinzufügen** legt einen
|
||||
an; er bekommt einen **Titel des Abschnitts** und darunter seine Schritte.
|
||||
|
||||
Die zweistellige Nummer (`01 · Vorbereitung`) kommt aus der Position und wird **nie gespeichert**.
|
||||
Schreib sie also nicht in den Titel — beim ersten Umsortieren wäre sie falsch.
|
||||
|
||||
Sortiert wird auf zwei Wegen: mit dem Anfasser links ziehen, oder über die Pfeile **nach oben** und
|
||||
**nach unten** an der Zeile. Der zweite Weg ist am Handy der bessere. Schritte werden innerhalb
|
||||
ihres Abschnitts sortiert und lassen sich nicht in einen anderen ziehen.
|
||||
|
||||
Höchstens 200 Abschnitte, höchstens 500 Schritte je Abschnitt.
|
||||
|
||||
### Schritte und ihre Typen
|
||||
|
||||
Jeder Schritt hat **Titel**, **Typ** und das Häkchen **Pflichtschritt**. Dazu je nach Typ:
|
||||
|
||||
| Typ | Was der Techniker tut | Einstellungen |
|
||||
|---|---|---|
|
||||
| **Haken** | abhaken | keine |
|
||||
| **Text** | Text eintragen | **Mehrzeiliges Feld** |
|
||||
| **Zahl** | Zahl eintragen | **Mindestens**, **Höchstens**, **Einheit** |
|
||||
| **Auswahl** | aus einer Liste wählen | **Optionen** (mindestens eine) |
|
||||
| **Datum** | Datum wählen | keine |
|
||||
| **Befehl** | Befehl kopieren und ausführen | **Shell** (powershell, bash, cmd), **Befehl** |
|
||||
|
||||
Mindestens und Höchstens sind **Hinweise, kein Verbot**: ein Wert außerhalb wird im Lauf markiert
|
||||
und trotzdem gespeichert.
|
||||
|
||||
**Pflichtschritt** heißt: der Lauf lässt sich nicht abschließen, solange dieser Schritt weder
|
||||
erledigt noch ausdrücklich als nicht zutreffend eingetragen ist. Setz das sparsam — sind alle
|
||||
Schritte Pflicht, ist keiner Pflicht.
|
||||
|
||||
Beim Wechsel des Typs räumt der Editor die Einstellungen auf, damit nicht der Befehl eines
|
||||
ehemaligen Befehlsschritts unsichtbar mitwandert.
|
||||
|
||||
### Hilfetext und Doku-Link
|
||||
|
||||
Der **Hilfetext** ist in der Abarbeitungsansicht ausklappbar und darf **Markdown** enthalten:
|
||||
`**fett**`, Listen, Links, `` `Code` ``. **Kein HTML.** Hier steht das, was jemand beim ersten Mal
|
||||
wissen muss — im Modus „Kompakt“ blendet der Techniker ihn später aus.
|
||||
|
||||
Der **Doku-Link** erscheint im Lauf als **Anleitung öffnen**. Nur `http`- und `https`-Adressen.
|
||||
|
||||
### Variablen
|
||||
|
||||
Variablen werden **beim Start eines Laufs abgefragt** und füllen die Platzhalter. **Variable
|
||||
hinzufügen** legt eine an:
|
||||
|
||||
- **Schlüssel** — der Name im Platzhalter `{{schluessel}}`. Ein Variablenschlüssel beginnt mit einem
|
||||
Kleinbuchstaben und besteht aus Kleinbuchstaben, Ziffern und Unterstrich, höchstens 40 Zeichen.
|
||||
`vorname`, `ad_gruppe` und `raum2` gehen; `Vorname`, `mit-strich` und `2te_wahl` nicht. Die
|
||||
Strenge hat einen Grund: derselbe Schlüssel steht in PowerShell-Befehlen, und `{{Vor-Name}}` ließe
|
||||
sich dort nicht mehr von der Syntax der Shell trennen.
|
||||
- **Beschriftung** — was im Startformular über dem Feld steht.
|
||||
- **Typ** — Text, Zahl, Auswahl oder Datum.
|
||||
- **Pflichtangabe beim Start** — ohne Eingabe lässt sich der Lauf nicht anlegen.
|
||||
- **Optionen** — nur bei Auswahl.
|
||||
|
||||
Ein Schlüssel darf nur einmal vorkommen; der Editor markiert eine Doppelung sofort. Eine Variable,
|
||||
die nirgends verwendet wird, ist erlaubt — sie wird trotzdem beim Start abgefragt.
|
||||
|
||||
Fünf Namen sind als Variable gesperrt: `techniker`, `datum`, `kunde`, `kundenkuerzel` und
|
||||
`generiertes_passwort`. Sie sagen, **wer, wann und für wen** — eine Variable dafür hieße, dass in
|
||||
einem fertigen Befehl ein fremder Name oder ein falsches Datum stehen kann, ohne dass es auffällt.
|
||||
|
||||
Höchstens 200 Variablen.
|
||||
|
||||
### Platzhalter
|
||||
|
||||
Ein Platzhalter `{{schluessel}}` in **Titel, Hilfetext oder Befehl** wird beim Abarbeiten ersetzt.
|
||||
Leerzeichen in den Klammern sind erlaubt: `{{ vorname }}` wird erkannt.
|
||||
|
||||
Er wird aus einer Variablen der Vorlage gefüllt — oder aus einem der **eingebauten** Werte. Welche
|
||||
es gibt, steht im Editor hinter **Welche Platzhalter gibt es?**, nach Quelle gruppiert:
|
||||
|
||||
| Quelle | Platzhalter |
|
||||
|---|---|
|
||||
| Gerät und Lauf | `hostname`, `seriennummer`, `inventarnummer`, `ticket`, `datum`, `techniker`, und im Modus Dienstleistung `kunde`, `kundenkuerzel` |
|
||||
| Mitarbeiter | `mitarbeiter`, `benutzer`, `vorname`, `nachname`, `upn`, `sam`, `mail`, `abteilung`, `titel`, `vorgesetzter`, `vorgesetzter_sam`, `dn` |
|
||||
| Abteilung | `ou` (Ziel-Container), `gruppen` (Standardgruppen, kommagetrennt) |
|
||||
| Einstellungen | `ou_gesperrt` (Ziel-OU für deaktivierte Konten) |
|
||||
| Besonders | `generiertes_passwort` |
|
||||
|
||||
`{{generiertes_passwort}}` ist der Sonderfall: **20 Zeichen, bei jeder Anzeige neu erzeugt und
|
||||
nirgends gespeichert** — nicht im Lauf, nicht im Kommentar, nicht im Protokoll, nicht im Ausdruck.
|
||||
Auf einem Ausdruck steht an seiner Stelle `[Passwort – nicht gespeichert]`. Bau also keinen Ablauf,
|
||||
der davon ausgeht, dass man das Passwort später nachschlagen kann.
|
||||
|
||||
Ein Platzhalter, der zu keiner Variablen und keinem eingebauten Wert passt, wird oben im Editor
|
||||
**gewarnt**, aber nicht abgewiesen: ein Tippfehler soll hier auffallen und nicht erst dem Techniker
|
||||
im Lauf — es kann aber sein, dass die Variable gleich noch kommt. Im Lauf bleibt ein unbekannter
|
||||
Platzhalter als Text stehen.
|
||||
|
||||
Für Befehlsschritte gilt eine zusätzliche Regel: **die Anführungszeichen gehören in die Vorlage,
|
||||
nicht in den Wert.** Schreib also `New-ADUser -Name "{{vorname}} {{nachname}}"`. Steht ein
|
||||
Platzhalter in einem Befehl nicht zwischen den erwarteten Anführungszeichen, wird der Schritt im
|
||||
Lauf abgewiesen, statt einen halb maskierten Befehl zum Kopieren anzubieten.
|
||||
|
||||
### Vorschau
|
||||
|
||||
**Vorschau** zeigt die Vorlage so, wie sie im Lauf aussieht: mit Beispielwerten in allen
|
||||
Platzhaltern, abgeschalteten Feldern und nummerierten Abschnitten. Gespeichert wird dabei nichts,
|
||||
und für `{{generiertes_passwort}}` entsteht **kein** Passwort — dort steht
|
||||
`BEISPIEL-PASSWORT-NICHT-ECHT`.
|
||||
|
||||
Nutz sie vor dem Veröffentlichen, besonders bei Befehlen: erst hier sieht man, ob der fertige Befehl
|
||||
so aussieht, wie er aussehen soll.
|
||||
|
||||
## Veröffentlichen
|
||||
|
||||
Im Abschnitt **Veröffentlichen** trägst du eine **Änderungsnotiz (optional)** ein — ein Satz, was
|
||||
sich gegenüber der letzten Version geändert hat; sie steht später in der Versionsgeschichte. Dann
|
||||
**Veröffentlichen**.
|
||||
|
||||
**Veröffentlicht wird das Gespeicherte, nicht das, was auf dem Bildschirm steht.** Gibt es nicht
|
||||
gespeicherte Änderungen, warnt der Editor — erst speichern, dann veröffentlichen.
|
||||
|
||||
Danach ist die Version unveränderlich, und Läufe können daran starten. Der Editor schaltet in den
|
||||
Lesemodus.
|
||||
|
||||
Willst du weiter daran arbeiten, drückst du auf der Vorlagenseite wieder **Bearbeiten**: es entsteht
|
||||
ein neuer Entwurf mit der nächsthöheren Nummer.
|
||||
|
||||
## Export und Import
|
||||
|
||||
**Als JSON exportieren** auf der Vorlagenseite lädt eine Version als Datei herunter. Das Dokument
|
||||
enthält Kopfdaten, Variablen, Abschnitte und Schritte — und ausdrücklich keine Kennungen,
|
||||
Zeitstempel, Läufe oder Kundenzuordnung. Damit lässt es sich in eine **andere**
|
||||
Laufzettel-Installation einspielen.
|
||||
|
||||
Eingespielt wird in der Vorlagenliste unter **Vorlage aus einer Datei einspielen**: Datei wählen
|
||||
oder den Inhalt einfügen, dann **Einspielen**. Zu wissen:
|
||||
|
||||
- Es entsteht immer eine **neue** Vorlage; der Import schreibt nie in eine bestehende hinein.
|
||||
- Sie bekommt genau eine Version als **Entwurf**. Erst nach dem Ansehen und Veröffentlichen lässt
|
||||
sich ein Lauf daran starten.
|
||||
- Die Versionsnummer der Quelle wandert nicht mit: hier fängt die Vorlage wieder bei 1 an.
|
||||
- Eine eingespielte Vorlage gilt zunächst für alle Kunden. Die Zuordnung setzt du danach in den
|
||||
Kopfdaten.
|
||||
- Schlägt die Prüfung fehl, wird **nichts** geschrieben, und die Meldung nennt die erste
|
||||
Beanstandung mit ihrem Pfad, etwa
|
||||
`struktur.abschnitte.1.schritte.2.titel: Ein Schritt braucht einen Titel.`
|
||||
|
||||
Das Format ist vollständig beschrieben in [docs/vorlagen-format.md](../vorlagen-format.md) — für
|
||||
den Fall, dass jemand eine Vorlage von Hand schreiben oder ein Skript dafür bauen will.
|
||||
|
||||
## Vorlagen einem Gerätetyp zuordnen
|
||||
|
||||
Damit auf der Geräteseite ein **Schnellstart** erscheint, muss für den Gerätetyp eine Vorlage
|
||||
hinterlegt sein — etwa „PC Neuinstallation“ für den Typ PC. Diese Zuordnung wird beim Einrichten der
|
||||
Anwendung gesetzt und lässt sich in der Oberfläche noch nicht ändern; wende dich dafür an die
|
||||
Person, die Laufzettel betreibt.
|
||||
|
||||
Ohne Zuordnung bleibt der Schnellstart leer, und das ist kein Mangel: unter **Vorlage zuweisen**
|
||||
steht auf der Geräteseite jede Vorlage, die zu diesem Gerät passt, und der Start-Dialog kennt sie
|
||||
ohnehin alle.
|
||||
@@ -0,0 +1,178 @@
|
||||
# Mitarbeiter, Abteilungen und Geräte
|
||||
|
||||
Unter **Mitarbeiter & Geräte** (im Modus Dienstleistung: **Personen & Geräte**) liegen die
|
||||
Stammdaten. Oben schalten zwei Reiter um: **Personen** und **Geräte**.
|
||||
|
||||
Personen und Geräte pflegen darf die Rolle **Techniker**, **Redakteur** oder **Administrator** —
|
||||
beim Onboarding steht der Techniker vor der Person, bevor der nächste Verzeichnisabgleich gelaufen
|
||||
ist. **Abteilungen** bleiben beim **Administrator**: an ihnen hängen Ziel-OU und Standardgruppen,
|
||||
also das, was die späteren PowerShell-Befehle in ein Verzeichnis schreiben.
|
||||
|
||||
## Personen
|
||||
|
||||

|
||||
|
||||
Gesucht wird über **Name, Mail, UPN oder sam** — im Ticket steht mal das eine, mal das andere. Dazu
|
||||
der Filter **Abteilung** und das Häkchen **auch deaktivierte**; ohne das erscheinen nur aktive
|
||||
Personen.
|
||||
|
||||
Eine Zeile trägt den Namen, die Kennungen, die Abteilung und die Zahl der Geräte und Läufe. Zwei
|
||||
Kennzeichen sind wichtig:
|
||||
|
||||
- **aus dem Verzeichnis** — diese Person kommt aus dem Active Directory. Ihre Stammdaten werden
|
||||
dort gepflegt.
|
||||
- **deaktiviert** — nicht mehr im Haus. Steht mit Durchstreichung da.
|
||||
|
||||
### Eine Person von Hand anlegen
|
||||
|
||||
Unter **Person von Hand anlegen**: **Vorname**, **Nachname**, **Mail-Adresse (optional)** und
|
||||
**Abteilung (optional)** — für die Abteilung schlägt das Feld vorhandene Namen vor. Hinter
|
||||
**Verzeichnis-Angaben (UPN, sAMAccountName, Titel)** stehen die drei Felder, die das Verzeichnis
|
||||
sonst liefert. Im Modus Dienstleistung außerdem der **Kunde**. Dann **Person anlegen**.
|
||||
|
||||
Gedacht ist das für das Onboarding: die Person entsteht hier, das AD-Konto danach. Eine so angelegte
|
||||
Person bleibt vollständig änderbar, und der nächste Verzeichnisabgleich **übernimmt** sie über UPN
|
||||
oder sAMAccountName, statt sie ein zweites Mal anzulegen.
|
||||
|
||||
### Die Seite einer Person
|
||||
|
||||

|
||||
|
||||
Oben Name, Titel, Abteilung, gegebenenfalls der Vorgesetzte. Darunter:
|
||||
|
||||
- der Knopf **deaktivieren** beziehungsweise **wieder aktivieren**,
|
||||
- **Geräte** — was dieser Person zugeordnet ist, mit Tag-Code,
|
||||
- **Stammdaten** — das Formular, **Stammdaten speichern** übernimmt.
|
||||
|
||||
Kommt die Person **aus dem Verzeichnis**, ist jedes Feld der Stammdaten gesperrt, und oben steht,
|
||||
warum: „Die Stammdaten werden dort gepflegt — eine Änderung hier würde der nächste Abgleich
|
||||
zurücksetzen.“ Die Werte stehen trotzdem da, nur schreibgeschützt; ein ausgeblendetes Feld wäre eine
|
||||
schlechtere Auskunft als ein gesperrtes. **Deaktivieren lässt sie sich trotzdem.**
|
||||
|
||||

|
||||
|
||||
### Deaktivieren statt löschen
|
||||
|
||||
**Personen werden nie gelöscht, nur deaktiviert.** Ein archivierter Lauf muss auch in zehn Jahren
|
||||
noch sagen können, für wen er lief. Eine deaktivierte Person verschwindet aus den Auswahllisten,
|
||||
bleibt aber in jeder Historie auffindbar.
|
||||
|
||||
## Personen aus einer CSV-Datei einlesen
|
||||
|
||||

|
||||
|
||||
Unter **Personen aus einer CSV-Datei einlesen**. Die Spalten heißen wie im Verzeichnis, die
|
||||
deutschen Entsprechungen gehen genauso:
|
||||
|
||||
| Spalte | Auch |
|
||||
|---|---|
|
||||
| `givenName` | vorname |
|
||||
| `sn` | surname, nachname |
|
||||
| `displayName` | anzeigename |
|
||||
| `mail` | email, mailadresse |
|
||||
| `upn` | userPrincipalName |
|
||||
| `sam` | sAMAccountName |
|
||||
| `department` | abteilung |
|
||||
| `title` | titel |
|
||||
|
||||
Groß- und Kleinschreibung ist unerheblich, Trennzeichen darf Komma oder Semikolon sein, höchstens
|
||||
500 Zeilen je Datei. Datei wählen oder Inhalt einfügen, im Modus Dienstleistung den **Kunden**
|
||||
wählen, dann **Einlesen**.
|
||||
|
||||
Was der Import zusagt:
|
||||
|
||||
- **Wiedererkannt** wird eine Person über `sam` oder `upn`, sonst über den Anzeigenamen. Wer schon
|
||||
da ist, wird aktualisiert statt ein zweites Mal angelegt.
|
||||
- **Eine leere Zelle löscht nichts.** Was in der Datei nicht steht, bleibt, wie es ist.
|
||||
- Fehlen `givenName` und `sn`, wird `displayName` am letzten Leerzeichen geteilt.
|
||||
- **Personen aus dem Verzeichnis werden nicht überschrieben** — solche Zeilen werden gemeldet.
|
||||
- Eine **deaktivierte** Person wird erkannt und aktualisiert, aber **nicht wieder aktiviert**. Dafür
|
||||
gibt es den Schalter auf ihrer Seite.
|
||||
- **Abteilungen legt der Import nicht an.** Der Name wird nur bei der Person eingetragen; als
|
||||
Abteilung mit Ziel-OU und Standardgruppen übernimmt sie ein Administrator.
|
||||
|
||||
Eine fehlerhafte Zeile bricht den Import nicht ab. Sie wird unten mit ihrer **Zeilennummer** und dem
|
||||
Grund gemeldet — genau die Zeilen sind in der Datei zu ändern.
|
||||
|
||||
## Abteilungen
|
||||
|
||||
Abteilungen liegen unter **Admin → Abteilungen**, weil an ihnen die Struktur des Verzeichnisses
|
||||
hängt.
|
||||
|
||||

|
||||
|
||||
Eine Abteilung hat:
|
||||
|
||||
- **Name** — er muss **genauso lauten wie im Verzeichnis**, sonst findet die Zuordnung ihn nicht.
|
||||
Verknüpft wird über den Abteilungsnamen der Person, nicht über eine Kennung.
|
||||
- **Ziel-OU (optional)** — wo ein neues Konto landet, etwa
|
||||
`OU=Buchhaltung,OU=Benutzer,DC=firma,DC=de`. Sie füllt den Platzhalter `{{ou}}`.
|
||||
- **Standardgruppen, mit Komma getrennt** — sie füllen `{{gruppen}}`. **Die Reihenfolge bleibt
|
||||
erhalten**, sie landet so im Gruppen-Befehl.
|
||||
- **Mail-Domain (optional)** und **Notizen (optional)**.
|
||||
|
||||
Ein Tippfehler in der Ziel-OU legt ein Konto an der falschen Stelle an — das ist der Grund, warum
|
||||
diese Seite dem Administrator gehört. Fehlen Ziel-OU und Standardgruppen, bleiben `{{ou}}` und
|
||||
`{{gruppen}}` im Lauf leer.
|
||||
|
||||
**Bearbeiten** klappt das Formular an der Zeile auf. **archivieren** nimmt eine Abteilung aus dem
|
||||
Angebot; gelöscht wird nichts, an einer Abteilung hängen Läufe. **wieder freigeben** macht es
|
||||
rückgängig.
|
||||
|
||||
### Noch nicht gepflegte Abteilungen
|
||||
|
||||

|
||||
|
||||
Steht ein Abteilungsname bei Personen, ohne dass es dazu eine Abteilung gibt, erscheint oben
|
||||
**Noch nicht gepflegt**. Ein Klick auf **Anlegen** legt die Abteilung mit diesem Namen an — **und
|
||||
nur den Namen.** Ziel-OU, Standardgruppen und Mail-Domain sind danach leer und werden in der Liste
|
||||
darunter nachgetragen.
|
||||
|
||||
## Geräte
|
||||
|
||||

|
||||
|
||||
Gesucht wird über **Hostname, Bezeichnung, Seriennummer, Tag-Code**, gefiltert nach **Typ** und mit
|
||||
dem Häkchen **auch archivierte**.
|
||||
|
||||
Jede Karte zeigt Tag-Code, Namen, Typ, Besitzer, Modell, Serien- und Inventarnummer und die Zahl der
|
||||
Läufe. Der Name führt auf die [Geräteseite](03-qr-tags.md). Kennzeichen: **Tag ohne Zuordnung** für
|
||||
einen vorgedruckten Aufkleber, **archiviert** für ein Gerät außer Dienst.
|
||||
|
||||
**Stammdaten bearbeiten** klappt das Formular an der Karte auf: Hostname, Bezeichnung, Typ, Modell,
|
||||
Seriennummer, Inventarnummer, Besitzer und Notizen. Zur Wahl als Besitzer stehen nur aktive Personen
|
||||
desselben Kunden.
|
||||
|
||||
### Ein Gerät anlegen
|
||||
|
||||
Unter **Gerät anlegen**: **Hostname** und **Bezeichnung** (eines von beiden genügt), **Typ**,
|
||||
**Modell**, **Seriennummer**, **Inventarnummer**, **Besitzer (optional)**, **Notizen (optional)**
|
||||
und im Modus Dienstleistung der **Kunde**. Dann **Gerät anlegen**.
|
||||
|
||||
Der **Tag-Code entsteht dabei** und steht danach in der Erfolgsmeldung — er kommt auf den Aufkleber.
|
||||
Drucke das Etikett gleich mit, solange du weißt, welches Gerät gemeint ist.
|
||||
|
||||
### Geräte aus einer CSV-Datei einlesen
|
||||
|
||||
Dieselbe Mechanik wie bei den Personen, höchstens 500 Zeilen. Spalten: `hostname`, `label`
|
||||
(bezeichnung), `serialNumber`, `inventoryNumber`, `type`, `model`. **Eine der beiden Spalten
|
||||
`hostname` oder `label` muss es geben** — sonst weiß niemand, was das Gerät ist. Jede eingelesene
|
||||
Zeile verbraucht einen Tag-Code; lieber zweimal drucken als einmal zu viel einlesen.
|
||||
|
||||
### Archivieren statt löschen
|
||||
|
||||
**archivieren** nimmt ein Gerät aus dem Bestand: es taucht in keiner Auswahl mehr auf und nimmt
|
||||
keine neue Arbeit an, bleibt aber in jeder Historie und lässt sich mit **wieder freigeben**
|
||||
zurückholen. Das ist der normale Weg für ein ausgemustertes Gerät.
|
||||
|
||||
**löschen** ist die einzige echte Löschung in Laufzettel, und sie ist eng eingehegt:
|
||||
|
||||
- Sie erscheint nur, wenn **kein Lauf** an dem Gerät hängt. Sonst sagt Laufzettel: „An … hängen 3
|
||||
Läufe. Das Gerät lässt sich deshalb nur archivieren.“
|
||||
- Sie verlangt die Rolle **Administrator**.
|
||||
- Sie fragt nach.
|
||||
|
||||
Der Grund für die Ausnahme: der Vertipper von eben stünde sonst für immer in der Liste. Der Preis
|
||||
steht in der Rückfrage: **der Tag-Code bleibt für immer vergeben.** Er wird nie neu ausgegeben, ein
|
||||
Aufkleber zeigt nie auf ein zweites Gerät — und ein schon gedruckter Aufkleber dieses Codes ist
|
||||
danach wertlos.
|
||||
@@ -0,0 +1,171 @@
|
||||
# Verzeichnis anbinden
|
||||
|
||||
Unter **Admin → Verzeichnis** wird ein Active Directory als Quelle der Personen eingerichtet. Dann
|
||||
muss beim Start eines Laufs nichts abgetippt werden, und `{{vorname}}`, `{{upn}}`, `{{sam}}` und
|
||||
`{{abteilung}}` stehen von selbst zur Verfügung.
|
||||
|
||||
Zwei Dinge vorweg:
|
||||
|
||||
- Der Reiter gibt es **nur im Modus Intern**. Dort hat das Haus ein Verzeichnis, aus dem seine Leute
|
||||
kommen. Im Modus Dienstleistung wären es Verzeichnisse fremder Kunden, und die bindet Laufzettel
|
||||
ausdrücklich nicht an — dort kommen Personen von Hand oder per CSV.
|
||||
- **Laufzettel schreibt nie ins Verzeichnis.** Ein Dienstkonto mit **Leserechten** genügt.
|
||||
Gespeichert werden nur die zugeordneten Felder — keine Passwörter, keine
|
||||
Gruppenmitgliedschaften.
|
||||
|
||||
Wer im Verzeichnis verschwindet oder dort deaktiviert wird, wird hier **inaktiv**. Gelöscht wird
|
||||
nie, sonst verlöre die Historie ihre Namen.
|
||||
|
||||
## Eine Quelle anlegen
|
||||
|
||||

|
||||
|
||||
Das Formular **Quelle anlegen** steht unten auf der Seite. Die Felder:
|
||||
|
||||
| Feld | Was hinein gehört |
|
||||
|---|---|
|
||||
| **Name** | wie du die Quelle nennst, etwa „Firmen-AD“ |
|
||||
| **Adresse** | `ldaps://dc01.firma.local:636` — nur Schema, Rechner und Port |
|
||||
| **Anmelde-DN** | das Dienstkonto, etwa `CN=laufzettel,OU=Dienstkonten,DC=firma,DC=local` |
|
||||
| **Passwort** | wird verschlüsselt gespeichert und nie wieder angezeigt |
|
||||
| **Basis-DN** | wo gesucht wird, etwa `OU=Benutzer,DC=firma,DC=local` |
|
||||
| **Filter (optional)** | leer lassen nimmt den Standard: aktive Personenkonten |
|
||||
| **Abgleich alle … Minuten** | zwischen 5 und 10080 (fünf Minuten bis eine Woche) |
|
||||
| **Nach Zeitplan abgleichen** | das Häkchen schaltet den Zeitplan ein |
|
||||
|
||||
Für die **Adresse** gibt es drei Formen:
|
||||
|
||||
- `ldaps://host:636` — verschlüsselt ab dem ersten Byte. **Die richtige Wahl.**
|
||||
- `ldap+starttls://host:389` — unverschlüsselt verbunden und dann hochgestuft.
|
||||
- `ldap://host:389` — im Klartext. Sobald du das eintippst, warnt das Formular: dann geht auch das
|
||||
Bind-Passwort im Klartext über das Netz. Für ein Dienstkonto im Active Directory ist das keine gute
|
||||
Idee.
|
||||
|
||||
In die Adresse gehören **kein Pfad und keine Zugangsdaten**. Der Basis-DN hat sein eigenes Feld,
|
||||
Bind-DN und Passwort ebenso; Laufzettel weist eine Adresse mit `/` oder `@` dahinter ausdrücklich ab.
|
||||
|
||||
Der **Standardfilter** schließt deaktivierte Konten aus. Das ist der Sinn: wer aus dem Ergebnis
|
||||
verschwindet, wird hier deaktiviert. Ein eigener Filter engt weiter ein, etwa auf eine einzelne OU.
|
||||
|
||||
Dann **Quelle anlegen**.
|
||||
|
||||
## Attributzuordnung
|
||||
|
||||
Hinter **Attributzuordnung anpassen** steht, welches Verzeichnis-Attribut auf welches Feld geht. Die
|
||||
Vorgaben sind die Namen eines Active Directory:
|
||||
|
||||
| Feld | Vorgabe |
|
||||
|---|---|
|
||||
| Vorname | `givenName` |
|
||||
| Nachname | `sn` |
|
||||
| Anzeigename | `displayName` |
|
||||
| E-Mail | `mail` |
|
||||
| UPN | `userPrincipalName` |
|
||||
| Anmeldename (sam) | `sAMAccountName` |
|
||||
| Abteilung | `department` |
|
||||
| Titel | `title` |
|
||||
| Vorgesetzter | `manager` |
|
||||
| Kennung (dauerhaft) | `objectGUID` |
|
||||
|
||||
Ein OpenLDAP heißt an einigen Stellen anders — dort ist die dauerhafte Kennung etwa `entryUUID`.
|
||||
Leer gelassene Felder bekommen die Vorgabe zurück.
|
||||
|
||||
> **Die Kennung ist das eine Feld, das später nicht mehr geändert werden sollte.** An ihr erkennt der
|
||||
> Abgleich eine Person wieder. Ein anderer Wert legt beim nächsten Lauf **alle Personen neu an**.
|
||||
|
||||
## Eigenes CA-Zertifikat
|
||||
|
||||
Nur nötig, wenn der Domänencontroller ein Zertifikat aus einer eigenen CA trägt. Hinter **Eigenes
|
||||
CA-Zertifikat hinterlegen** fügst du den **PEM**-Text ein, beginnend mit
|
||||
`-----BEGIN CERTIFICATE-----`. Ohne Eintrag gelten die Wurzelzertifikate des Systems.
|
||||
|
||||
Ist eines hinterlegt, sagt die Seite das. Das Feld bleibt beim Bearbeiten trotzdem leer: **Text
|
||||
eintragen ersetzt es, leer lassen behält es**, und das Häkchen **Hinterlegtes Zertifikat entfernen**
|
||||
nimmt es weg. Beides zugleich ergibt keinen Sinn und wird abgewiesen.
|
||||
|
||||
Dasselbe gilt für das **Passwort**: leer lassen behält das gespeicherte. Sonst nähme jede
|
||||
Namensänderung der Quelle ihre Anmeldung.
|
||||
|
||||
## Verbindung testen
|
||||
|
||||

|
||||
|
||||
**Verbindung testen** liest die ersten Einträge und zeigt sie so, wie sie ankämen — **gespeichert
|
||||
wird nichts**. Mach das immer vor dem ersten Abgleich. Klappt es nicht, steht der Grund in Rot
|
||||
darunter; die häufigsten stehen in [Kapitel 08](08-fehlerbehebung.md).
|
||||
|
||||
Der Wert steckt nicht im „geht“, sondern in der Liste darunter: erst an den zugeordneten Feldern
|
||||
siehst du, ob die Zuordnung stimmt. Ein grünes „Verbindung erfolgreich“ sähe genauso aus, wenn `sam`
|
||||
und `upn` vertauscht wären — und der Fehler fiele erst auf, wenn ein PowerShell-Befehl den falschen
|
||||
Anmeldenamen trägt.
|
||||
|
||||
Prüf also Zeile für Zeile: Steht unter **UPN** wirklich der UPN? Unter **sam** der Anmeldename? Ist
|
||||
die **Abteilung** genau der Name, unter dem du die Abteilung gepflegt hast?
|
||||
|
||||
Ein **Vorgesetzter** erscheint im Test nur, wenn er zufällig unter diesen Einträgen ist. Beim
|
||||
vollständigen Abgleich wird er aufgelöst.
|
||||
|
||||
## Zeitplan und „Jetzt abgleichen“
|
||||
|
||||
Ist **Nach Zeitplan abgleichen** gesetzt, läuft der Abgleich von selbst im gewählten Intervall; an
|
||||
der Quelle steht dann „alle 60 min“, sonst „kein Zeitplan“.
|
||||
|
||||
**Jetzt abgleichen** startet ihn sofort — nach einer Änderung am Filter will niemand bis zur nächsten
|
||||
vollen Stunde warten. Es ist derselbe Vorgang, den auch der Zeitplan ruft, es gibt also keinen
|
||||
zweiten Weg mit eigenen Regeln.
|
||||
|
||||
Läuft für diese Quelle gerade schon ein Abgleich, sagt Laufzettel das und tut nichts: „Für … läuft
|
||||
gerade schon ein Abgleich. Bitte das Ergebnis abwarten.“
|
||||
|
||||
## Was der Abgleich tut
|
||||
|
||||
1. Er liest das Verzeichnis in Seiten von je tausend Einträgen.
|
||||
2. Jeder Eintrag wird über die **Kennung** wiedererkannt und aktualisiert, oder neu angelegt.
|
||||
3. Eine **von Hand angelegte** Person wird über `upn` oder `sam` gefunden und **übernommen**, nicht
|
||||
verdoppelt. Genau so ist das Onboarding gedacht: die Person entsteht hier, das AD-Konto danach.
|
||||
4. **Erst nach einem vollständigen Durchlauf** wird deaktiviert, wer nicht wiedergesehen wurde. Ein
|
||||
Netzwerkfehler nach der halben Liste soll nicht die andere Hälfte der Firma abschalten.
|
||||
|
||||
Drei Sicherungen, die alle denselben Fehler verhindern — dass eine kaputte Eingabe wie „alle sind
|
||||
gegangen“ aussieht:
|
||||
|
||||
- **Ließ sich kein einziger Eintrag zuordnen, gilt der Abgleich als gescheitert** und es wird niemand
|
||||
deaktiviert. Die Meldung sagt: „Niemand wurde deaktiviert. Prüf die Attributzuordnung, besonders
|
||||
das Kennungsattribut.“
|
||||
- **Übersprungene Einträge sind nicht verschwunden** und werden aus der Abschaltung herausgenommen.
|
||||
- Eine Person, die schon eine **andere** Quelle führt, wird nie übernommen.
|
||||
|
||||
Der Abgleich läuft nicht in einer Transaktion. Bricht er in der Mitte ab, bleiben die bis dahin
|
||||
geschriebenen Personen stehen — ein zweiter Lauf holt den Rest.
|
||||
|
||||
## Das Abgleich-Log
|
||||
|
||||

|
||||
|
||||
An der Quelle steht der letzte Stand: „Zuletzt abgeglichen am …“ oder „Letzter Abgleich gescheitert“
|
||||
mit der Meldung dazu.
|
||||
|
||||
Hinter **Abgleich-Log** stehen die letzten Läufe mit Zeitpunkt, wer sie ausgelöst hat (steht dort
|
||||
**Zeitplan**, war es niemand von Hand — das ist der Regelfall) und der Bilanz:
|
||||
|
||||
| Zahl | Bedeutung |
|
||||
|---|---|
|
||||
| **gelesen** | Einträge, die aus dem Verzeichnis kamen |
|
||||
| **angelegt** | neue Personen |
|
||||
| **übernommen** | von Hand angelegte Personen, die jetzt am Verzeichnis hängen |
|
||||
| **aktualisiert** | vorhandene Personen mit geänderten Feldern |
|
||||
| **deaktiviert** | nicht mehr wiedergesehene Personen |
|
||||
| **übersprungen** | Einträge, die sich nicht zuordnen ließen |
|
||||
|
||||
**Nullen werden gezeigt.** „0 angelegt, 0 aktualisiert“ ist die Auskunft, dass der Abgleich lief und
|
||||
sich im Verzeichnis nichts geändert hat. Fehlte die Zeile, sähe ein erfolgreicher Lauf ohne Änderung
|
||||
aus wie ein Lauf, der nie stattfand.
|
||||
|
||||
**Übersprungene** Einträge sind kein Fehler der Quelle, sondern einzelne krumme Konten — sie stehen
|
||||
deshalb als Hinweis und nicht als Fehler da. Steigt die Zahl, prüf die Attributzuordnung.
|
||||
|
||||
## Ohne Verzeichnis
|
||||
|
||||
Eine Quelle ist keine Voraussetzung. Personen lassen sich von Hand anlegen oder aus einer CSV-Datei
|
||||
einlesen — ein Verzeichnis nimmt nur die Arbeit ab. Siehe
|
||||
[Kapitel 05](05-mitarbeiter-geraete.md).
|
||||
@@ -0,0 +1,154 @@
|
||||
# Verwaltung
|
||||
|
||||
Der Bereich **Admin** gehört der Rolle **Administrator**. Oben schalten Reiter um:
|
||||
**Einstellungen**, **Benutzer**, **Abteilungen** und — nur im Modus Intern — **Verzeichnis**.
|
||||
|
||||
Abteilungen sind in [Kapitel 05](05-mitarbeiter-geraete.md) beschrieben, das Verzeichnis in
|
||||
[Kapitel 06](06-verzeichnis.md).
|
||||
|
||||
## Benutzer und Rollen
|
||||
|
||||

|
||||
|
||||
**Benutzer** sind die Menschen, die Laufzettel bedienen. Nicht zu verwechseln mit den Mitarbeitern
|
||||
aus dem Verzeichnis: die melden sich hier nie an.
|
||||
|
||||
Je Konto stehen Name, E-Mail, die Anmeldewege (**Anbieter**, **Passwort** oder „kein Anmeldeweg“) und
|
||||
der Zeitpunkt der letzten Anmeldung. Rechts:
|
||||
|
||||
- die **Rollenwahl** mit dem Knopf **Setzen**,
|
||||
- der Schalter **aktiv** / **deaktiviert**.
|
||||
|
||||
Beim eigenen Konto steht statt des Schalters **das bist du** — niemand soll sich selbst aussperren.
|
||||
|
||||
Ein deaktiviertes Konto wird auch mit einem noch gültigen Sitzungs-Cookie abgewiesen, und eine
|
||||
geänderte Rolle greift sofort: Rolle und Aktiv-Status werden bei jeder Anfrage aus der Datenbank
|
||||
gelesen.
|
||||
|
||||
**Bei Anmeldung über den Anbieter wird die Rolle aus den Gruppen gesetzt und überschreibt eine hier
|
||||
gewählte.** Wer eine Rolle dauerhaft ändern will, ändert sie also in der Gruppenzuordnung des
|
||||
Anbieters, nicht hier.
|
||||
|
||||
Welche Rolle was darf, steht in [Kapitel 01](01-erste-schritte.md).
|
||||
|
||||
### Ein lokales Konto anlegen
|
||||
|
||||
Unter **Lokales Konto anlegen**: **Name**, **E-Mail**, **Rolle** und **Passwort (mindestens 12
|
||||
Zeichen)**, dann **Konto anlegen**. Das Passwort wird nur als Hash gespeichert.
|
||||
|
||||
Gedacht ist das als **Notfallzugang**, falls der Anmeldeanbieter ausfällt. Ist der lokale Login
|
||||
abgeschaltet, sagt die Seite das; neue Konten entstehen dann beim ersten Anmelden über den Anbieter
|
||||
von selbst.
|
||||
|
||||
## Einstellungen
|
||||
|
||||

|
||||
|
||||
### Organisation
|
||||
|
||||
Der Name des eigenen Betriebs. Im Modus **Intern** erscheint er nirgends in der Oberfläche — er wird
|
||||
erst sichtbar, wenn du auf Dienstleistung umstellst, denn dann wird daraus der erste Kunde.
|
||||
|
||||
### Namensregeln
|
||||
|
||||
Vorlagen für **UPN**, **Anmeldename (sam)**, **Mail** und **Hostname**. Beim Start eines Laufs
|
||||
berechnet Laufzettel daraus Vorschläge, die der Techniker überschreiben kann — der Knopf dafür heißt
|
||||
dort **Namen aus den Regeln vorschlagen**.
|
||||
|
||||
Platzhalter in den Regeln:
|
||||
|
||||
| Platzhalter | Bedeutung |
|
||||
|---|---|
|
||||
| `{vorname}` | der Vorname |
|
||||
| `{nachname}` | der Nachname |
|
||||
| `{v}` | der erste Buchstabe des Vornamens |
|
||||
| `{nnn}` | eine fortlaufende Nummer |
|
||||
| `{kundenkuerzel}` | das Kürzel des Kunden (nur Modus Dienstleistung) |
|
||||
|
||||
Beispiele: `{vorname}.{nachname}@firma.de` für den UPN, `{v}{nachname}` für den Anmeldenamen,
|
||||
`PC-{nnn}` für den Hostname.
|
||||
|
||||
Ein Vorschlag ist ein Angebot, keine Zusage: **verbindlich wird ein Name erst beim Anlegen im
|
||||
Verzeichnis.** Sind keine Regeln hinterlegt, sagt der Start-Dialog das und lässt die Felder leer.
|
||||
|
||||
### Sperr-OU
|
||||
|
||||
Die Ziel-OU für deaktivierte Konten, etwa `OU=Gesperrt,OU=Benutzer,DC=firma,DC=local`. Sie füllt den
|
||||
Platzhalter `{{ou_gesperrt}}` und wird beim Offboarding gebraucht.
|
||||
|
||||
**Speichern** übernimmt alle drei Abschnitte auf einmal.
|
||||
|
||||
### Adresse für die QR-Codes
|
||||
|
||||
Ganz unten steht, welche Adresse in den gedruckten QR-Codes landet, als Beispiel ausgeschrieben:
|
||||
`https://…/t/LZ-7K3F9Q`.
|
||||
|
||||
**Sie lässt sich hier nicht ändern.** Sie kommt aus der Umgebung der Anwendung, weil gedruckte
|
||||
Aufkleber sonst ins Leere zeigen würden. Steht dort „APP_URL ist nicht gesetzt — Etiketten können
|
||||
noch nicht gedruckt werden“, muss das erst beim Betrieb der Anwendung eingetragen werden. **Drucke
|
||||
vorher keine Etiketten.**
|
||||
|
||||
## Betriebsmodus umstellen
|
||||
|
||||

|
||||
|
||||
Oben auf der Einstellungsseite steht der aktuelle Modus mit einer Erklärung und darunter der Weg zum
|
||||
anderen. Der Wechsel braucht keinen Neustart.
|
||||
|
||||
**Zu Dienstleistung wechseln** klappt einen Dialog auf, der die Folgen aufzählt — dieselbe Prüfung,
|
||||
die der Wechsel danach durchsetzt, keine nachgebaute zweite Wahrheit:
|
||||
|
||||
- Die bisherige eigene Organisation wird zum **ersten Kunden**.
|
||||
- Alle Geräte, Personen, Abteilungen und Läufe bleiben daran hängen.
|
||||
- Kunden werden zu einer sichtbaren Ebene: Kundenliste, Kundenwahl beim Start eines Laufs,
|
||||
Kundenkürzel auf den Etiketten.
|
||||
|
||||
Dafür trägst du **Name als erster Kunde** und **Kürzel (2–6 Zeichen)** ein, setzt das Häkchen „Ja,
|
||||
den Betriebsmodus jetzt auf … umstellen“ und drückst **Auf Dienstleistung umstellen**.
|
||||
|
||||
Der Rückweg ist enger: **er geht nur mit genau einem nicht archivierten Kunden.**
|
||||
|
||||

|
||||
|
||||
Gibt es mehr, steht dort „Wechsel zu Intern gerade nicht möglich“ mit der Zahl und dem Hinweis, die
|
||||
übrigen Kunden zu archivieren. Geht es, lauten die Folgen:
|
||||
|
||||
- Der einzige Kunde wird zur eigenen Organisation und **verschwindet aus der Oberfläche**.
|
||||
- Alle Daten bleiben erhalten, nur die Kundenebene wird ausgeblendet.
|
||||
- Archivierte Kunden bleiben archiviert und tauchen nicht wieder auf.
|
||||
|
||||
Der Wechsel ist also in beide Richtungen eine Datenänderung und kein Datenverlust. Trotzdem ist er
|
||||
keine Kleinigkeit: er ändert, was die ganze Anwendung zeigt — deshalb das Häkchen.
|
||||
|
||||
## Kunden
|
||||
|
||||

|
||||
|
||||
Den Menüpunkt **Kunden** gibt es nur im Modus Dienstleistung. Geräte, Personen, Abteilungen und
|
||||
Läufe hängen an genau einem Kunden, und diese Grenze ist nicht nur eine Anzeige: ein Lauf kann kein
|
||||
Gerät, keine Person und keine Abteilung eines fremden Kunden wählen.
|
||||
|
||||
Je Kunde stehen das **Kürzel**, der Name und die Zählung (Geräte, Personen, Läufe). Der eigene
|
||||
Betrieb trägt das Kennzeichen **eigene Organisation**.
|
||||
|
||||
**Kunde anlegen** verlangt Name und Kürzel. Das **Kürzel erscheint auf den Etiketten** und lässt
|
||||
sich in der Hostname-Regel als `{kundenkuerzel}` verwenden — wähl es also so, dass man es auf einem
|
||||
Aufkleber erkennt.
|
||||
|
||||
**Bearbeiten** ändert Name, Kürzel und Notizen. **archivieren** nimmt einen Kunden außer Dienst;
|
||||
gelöscht wird nichts, sonst verlöre das Archiv seine Bezüge. Die eigene Organisation lässt sich
|
||||
nicht archivieren.
|
||||
|
||||
Eine Vorlage lässt sich **einem** Kunden zuordnen („nur Musterfirma GmbH“) oder für alle gelten
|
||||
lassen. Eine kundenspezifische Vorlage startet keinen Lauf bei einem anderen Kunden.
|
||||
|
||||
## Was protokolliert wird
|
||||
|
||||
Laufzettel schreibt ein Protokoll über das, was nachvollziehbar bleiben muss: Rollenänderungen,
|
||||
veröffentlichte Vorlagen, eingespielte Vorlagen, archivierte und zurückgeholte Läufe, angelegte und
|
||||
gelöschte Verzeichnisquellen, den Moduswechsel. Ein Protokolleintrag verliert seinen Urheber nie. Eine
|
||||
eigene Ansicht dafür gibt es in der Oberfläche noch nicht; was am Lauf selbst geschehen ist, steht in
|
||||
seiner Abarbeitungsansicht und im Ausdruck.
|
||||
|
||||
Ein **erzeugtes Passwort steht nie im Protokoll** — es wird nirgends gespeichert. Gäbe es ein Feld
|
||||
dafür, wäre die Versuchung groß, es „nur fürs Protokoll“ mitzuschreiben.
|
||||
@@ -0,0 +1,229 @@
|
||||
# Fehlerbehebung
|
||||
|
||||
Symptom, Ursache, was zu tun ist. Jede Meldung steht hier so, wie Laufzettel sie zeigt.
|
||||
|
||||
## „E-Mail-Adresse oder Passwort stimmt nicht.“
|
||||
|
||||
**Ursache:** falsche Zugangsdaten — **oder** ein deaktiviertes Konto. Die Meldung unterscheidet das
|
||||
nicht, weil sie sonst verriete, welche Adressen es gibt.
|
||||
|
||||
**Was tun:** Zugangsdaten prüfen. Bist du sicher, dass sie stimmen, lass einen Administrator unter
|
||||
**Admin → Benutzer** nachsehen, ob dein Konto auf **aktiv** steht. Ein deaktiviertes Konto wird auch
|
||||
mit noch gültiger Anmeldung abgewiesen.
|
||||
|
||||
## „Der Anbieter war nicht erreichbar. Bitte später erneut versuchen.“
|
||||
|
||||
**Ursache:** der Anmeldeanbieter antwortet nicht.
|
||||
|
||||
**Was tun:** Gibt es ein lokales Konto, melde dich damit an — genau dafür ist es da. Sonst hilft nur
|
||||
warten und die Störung melden. Der Notfallzugang steht unter **Admin → Benutzer → Lokales Konto
|
||||
anlegen** und sollte eingerichtet sein, *bevor* der Anbieter ausfällt.
|
||||
|
||||
## „Dafür fehlt dir die Berechtigung“
|
||||
|
||||
**Ursache:** deine Rolle darf diese Seite nicht.
|
||||
|
||||
**Was tun:** In der Seitenleiste steht ohnehin nur, was du darfst — die Meldung kommt meist von einem
|
||||
Link, den jemand weitergegeben hat. Brauchst du den Bereich wirklich, lass dir vom Administrator eine
|
||||
stärkere Rolle geben. Kommt die Rolle vom Anmeldeanbieter, muss sie dort in der Gruppenzuordnung
|
||||
geändert werden; eine hier gesetzte Rolle wird beim nächsten Anmelden überschrieben.
|
||||
|
||||
## „Deine Anmeldung gilt nicht mehr.“
|
||||
|
||||
**Ursache:** die Sitzung ist abgelaufen, während das Formular offen stand.
|
||||
|
||||
**Was tun:** Genau das, was die Meldung sagt: in einem **zweiten Tab** neu anmelden und dann hier
|
||||
noch einmal klicken. Was du eingegeben hast, steht weiterhin auf der Seite — **lade sie nicht neu**,
|
||||
das würde die Eingaben verwerfen.
|
||||
|
||||
## Ein Schritt lässt sich nicht speichern
|
||||
|
||||
**Ursache und was tun**, in dieser Reihenfolge prüfen:
|
||||
|
||||
1. **„… ist archiviert und damit schreibgeschützt.“** — der Lauf ist archiviert. Siehe unten.
|
||||
2. **„Ein Schritt, der nicht zutrifft, braucht eine Begründung“** oder **„Ein fehlgeschlagener
|
||||
Schritt braucht eine Notiz“** — füll das Feld **Begründung** und drück **Mit Begründung
|
||||
speichern**. Ohne Begründung stünde im Archiv ein übersprungener Schritt ohne Grund.
|
||||
3. **Die Pille springt zurück, ohne Meldung** — die Verbindung war weg. Tippe noch einmal. Jeder
|
||||
Schritt speichert einzeln, es geht also nur dieser eine Klick verloren.
|
||||
4. **Nichts passiert, gar nichts** — lade die Seite neu. Ist die Anmeldung abgelaufen, siehst du
|
||||
danach die Anmeldeseite und kommst nach dem Anmelden auf dieselbe Stelle zurück.
|
||||
5. **Deine Rolle ist Leser** — dann gibt es die Pillen nicht, sondern nur die Anzeige des Zustands.
|
||||
Läufe bearbeiten darf erst der Techniker.
|
||||
|
||||
## Der Lauf lässt sich nicht abschließen
|
||||
|
||||
**Ursache:** es ist noch ein Pflichtschritt offen. Der Knopf ist dann gesperrt, und darunter steht,
|
||||
wie viele es sind; die Meldung nennt die Titel: „Der Lauf lässt sich noch nicht abschließen. Offen
|
||||
sind: …“
|
||||
|
||||
**Was tun:** Die genannten Schritte erledigen — oder, wenn sie nicht zutreffen, mit Begründung als
|
||||
**nicht zutreffend** eintragen. **Ein fehlgeschlagener Schritt zählt nicht als erledigt:** er ist
|
||||
entweder zu beheben oder mit Begründung als nicht zutreffend einzutragen. Trifft ein ganzer Abschnitt
|
||||
nicht zu, nimm **Abschnitt trifft nicht zu** — eine Begründung für achtzehn Schritte.
|
||||
|
||||
## Der Lauf ist archiviert
|
||||
|
||||
**Ursache:** jemand hat ihn archiviert. Damit ist er schreibgeschützt: kein Haken, kein Wert, keine
|
||||
Notiz, kein Kommentar geht mehr. Das ist die Zusage, für die das Archiv da ist.
|
||||
|
||||
**Was tun:** Prüf zuerst, ob du es wirklich brauchst. Für eine Ergänzung genügt oft ein neuer Lauf,
|
||||
der auf den alten verweist — das ist der ehrlichere Weg, weil er datiert ist.
|
||||
|
||||
Muss es der alte Lauf sein, bittet du einen **Administrator**: nur er sieht auf der Laufseite **aus
|
||||
dem Archiv zurückholen**. Der Lauf steht danach wieder auf „abgeschlossen“ und lässt sich ändern; das
|
||||
Zurückholen wird protokolliert.
|
||||
|
||||
**Vorbeugen:** archiviere erst, wenn wirklich alles drinsteht. Es gibt keinen Grund zur Eile — ein
|
||||
abgeschlossener Lauf steht auch schon im Archiv und ist durchsuchbar.
|
||||
|
||||
## „Kein Laufzettel-Tag“ nach dem Scannen
|
||||
|
||||
**Ursache:** einer von drei Fällen, und Laufzettel unterscheidet sie absichtlich nicht — die
|
||||
Unterscheidung verriete, welche Codes es gibt:
|
||||
|
||||
- Es gibt den Code nicht.
|
||||
- Der Code hat nicht die richtige Form.
|
||||
- Der Code gehört zu einem **anderen Kunden**.
|
||||
|
||||
**Was tun:** Lies den Code unter dem QR ab und vergleich ihn. Ein Laufzettel-Code beginnt mit `LZ-`
|
||||
und hat sechs Zeichen dahinter, **ohne** die Zeichen `0`, `O`, `1` und `I`. Wer `O` statt `Q` liest,
|
||||
tippt einen Code, den es nicht geben kann — das ist Absicht, denn ein „verbessertes“ Zeichen könnte
|
||||
auf ein anderes, vorhandenes Gerät führen.
|
||||
|
||||
Stimmt der Code und du siehst trotzdem nichts, gehört der Aufkleber zu einem Kunden, den du nicht
|
||||
sehen darfst. Frag einen Administrator.
|
||||
|
||||
## Der Scanner startet nicht
|
||||
|
||||
| Meldung | Ursache | Was tun |
|
||||
|---|---|---|
|
||||
| „Die Kamera gibt es nur über HTTPS.“ | die Seite läuft unverschlüsselt | Die verschlüsselte Adresse verwenden. Bis dahin: Code eintippen. |
|
||||
| „Die Kamera ist nicht freigegeben.“ | Berechtigung verweigert | In den Einstellungen des Browsers die Kamera für diese Seite freigeben und neu laden. |
|
||||
| „Dieser Browser gibt keine Kamera frei.“ | kein Kamerazugriff möglich | Code eintippen. |
|
||||
| „Der QR-Leser lässt sich nicht starten.“ | der Decoder ließ sich nicht laden | Seite neu laden. Bleibt es dabei, einem Administrator melden; bis dahin Code eintippen. |
|
||||
| „Das ist kein Laufzettel-Tag.“ | ein fremder QR-Code im Bild | Den richtigen Aufkleber ins Bild halten — den mit `LZ-…`. |
|
||||
|
||||
In allen Fällen gilt: unter dem Kamerabild steht das Feld **Code eintippen**. Der Code steht lesbar
|
||||
unter dem QR. Ein Scanner, der nicht startet, ist keine Sackgasse.
|
||||
|
||||
## Das Etikett wird nicht gelesen
|
||||
|
||||
**Ursache und was tun:**
|
||||
|
||||
1. **Falsch skaliert gedruckt.** Im Druckdialog **Skalierung auf 100 %** stellen und **Kopf- und
|
||||
Fußzeilen abschalten**. „An Seite anpassen“ verkleinert den QR-Code und frisst die Ruhezone am
|
||||
Rand, die der Leser braucht.
|
||||
2. **Der Drucker hat gespart.** Manche Treiber lassen Flächen weg oder drucken sie grau. Ein QR-Code
|
||||
braucht harten Schwarz-Weiß-Kontrast; stell den Farbmodus auf normal, nicht auf Toner-Sparen.
|
||||
3. **Der Aufkleber ist beschädigt oder verschmutzt.** Tipp den Code darunter ein und drucke das
|
||||
Etikett neu: auf der Geräteseite **Etikett drucken**. Der Code bleibt derselbe.
|
||||
4. **Das Etikett sitzt neben der Stanzung.** Dann war die Skalierung falsch — siehe Punkt 1. Das
|
||||
Raster des A4-Bogens füllt das Blatt genau aus und verträgt keinen Seitenrand.
|
||||
5. **Der QR-Code führt ins Leere.** Dann war beim Drucken die Adresse der Anwendung nicht gesetzt
|
||||
(die Druckansicht warnt davor in Rot). Ein geklebter Aufkleber lässt sich nicht berichtigen: die
|
||||
Adresse eintragen lassen, Etiketten neu drucken und **überkleben**. Der Tag-Code selbst bleibt
|
||||
gültig.
|
||||
|
||||
## „APP_URL ist nicht gesetzt“
|
||||
|
||||
**Ursache:** die Anwendung weiß nicht, unter welcher Adresse sie erreichbar ist. Die QR-Codes zeigen
|
||||
dann auf `http://localhost:3000` und führen von keinem anderen Gerät irgendwohin.
|
||||
|
||||
**Was tun:** **Nicht drucken.** Ein Administrator trägt die Adresse in der Umgebung der Anwendung ein;
|
||||
in der Oberfläche geht das nicht, weil gedruckte Aufkleber sonst ins Leere zeigen würden. Unter
|
||||
**Admin → Einstellungen** steht ganz unten, welche Adresse gerade gilt.
|
||||
|
||||
## Der Verzeichnisabgleich meldet einen Fehler
|
||||
|
||||
| Meldung | Ursache | Was tun |
|
||||
|---|---|---|
|
||||
| „… ist keine LDAP-Adresse.“ | Schema fehlt oder falsch | `ldaps://host:636`, `ldap+starttls://host:389` oder `ldap://host:389` eintragen. |
|
||||
| „In … fehlt der Rechnername.“ | nur das Schema eingetragen | Rechner und Port ergänzen. |
|
||||
| „… enthält einen Pfad.“ | der Basis-DN steht in der Adresse | Adresse auf Schema, Rechner und Port kürzen; der Basis-DN hat sein eigenes Feld. |
|
||||
| „… enthält Zugangsdaten.“ | `benutzer@host` in der Adresse | Bind-DN und Passwort in ihre eigenen Felder. |
|
||||
| „Das Bind-Passwort fehlt.“ | leeres Passwortfeld beim Anlegen | Passwort eintragen; ein anonymer Bind wird nicht unterstützt. |
|
||||
| Fehler beim Verbinden oder Anmelden | Netz, Firewall, Zertifikat, falsches Dienstkonto | Erreichbarkeit und Port prüfen. Bei einem Zertifikat aus eigener CA das **PEM** hinterlegen. Dann **Verbindung testen**. |
|
||||
| „Niemand wurde deaktiviert. Prüf die Attributzuordnung, besonders das Kennungsattribut.“ | kein einziger Eintrag ließ sich zuordnen | Das ist die Notbremse: es wurde **nichts** abgeschaltet. Unter **Attributzuordnung anpassen** die **Kennung (dauerhaft)** prüfen — im Active Directory `objectGUID`, im OpenLDAP meist `entryUUID`. |
|
||||
| „Für … läuft gerade schon ein Abgleich.“ | ein zweiter Lauf, oft der Zeitplan | Abwarten und das **Abgleich-Log** ansehen. |
|
||||
| „Das CA-Zertifikat muss im PEM-Format vorliegen …“ | falscher Text eingefügt | Der Text muss mit `-----BEGIN CERTIFICATE-----` beginnen. |
|
||||
|
||||
**Übersprungene Einträge** im Log sind kein Fehler der Quelle, sondern einzelne krumme Konten. Steigt
|
||||
die Zahl, prüf die Attributzuordnung.
|
||||
|
||||
**Der Abgleich lief, hat aber nichts getan** („0 angelegt, 0 aktualisiert“): das ist die Auskunft,
|
||||
dass sich im Verzeichnis nichts geändert hat. Alles in Ordnung.
|
||||
|
||||
## „Der Entwurf wurde zwischenzeitlich von jemand anderem gespeichert.“
|
||||
|
||||
**Ursache:** zwei Redakteure am selben Entwurf.
|
||||
|
||||
**Was tun:** **Lade die Seite nicht neu** — deine Eingaben stehen noch da und wären danach weg. Öffne
|
||||
den Entwurf in einem zweiten Tab, sieh dir die fremde Fassung an und trag deine Änderungen dort nach.
|
||||
Wird es viel, hilft **Aufbau als JSON herauskopieren** unten an der Speicherleiste: damit rettest du
|
||||
deinen Stand als Text heraus.
|
||||
|
||||
Denselben Ausweg gibt es bei **jedem** fehlgeschlagenen Speichern im Editor, egal woran es lag.
|
||||
|
||||
## Der Lauf zeigt einen Platzhalter wie `{{ad_gruppe}}`
|
||||
|
||||
**Ursache:** der Platzhalter gehört zu keiner Variablen und zu keinem eingebauten Wert. Im Lauf bleibt
|
||||
er als Text stehen — sichtbar, aber nutzlos. Meist ein Tippfehler in der Vorlage.
|
||||
|
||||
**Was tun:** Im Befehl vor dem Ausführen von Hand ersetzen (der Kasten warnt davor: „konnte nicht
|
||||
eingesetzt werden und steht so im Befehl“). Dann sag es dem Redakteur: im Editor steht die Warnung
|
||||
oben, und die Vorlage braucht entweder die Variable oder den richtigen Schlüssel. Das wirkt erst in
|
||||
der **nächsten** Version — laufende Läufe hängen an ihrer.
|
||||
|
||||
## Das Passwort ist weg
|
||||
|
||||
**Ursache:** `{{generiertes_passwort}}` wird bei jeder Anzeige neu erzeugt und **nirgends
|
||||
gespeichert**. Sobald sich die Seite neu aufbaut — auch nach dem Speichern eines Schritts — steht dort
|
||||
ein anderes. Auf dem Ausdruck steht `[Passwort – nicht gespeichert]`.
|
||||
|
||||
**Was tun:** Es gibt keinen Weg, es nachzuschlagen; es existiert nicht mehr. Setz im Zielsystem ein
|
||||
neues Passwort und gib es weiter. Beim nächsten Mal: **kopieren und sofort weiterreichen**, bevor du
|
||||
etwas anderes anklickst. Meldet der Streifen oben „Beim Neuladen entsteht ein neues Passwort“,
|
||||
kopiere das angezeigte erst.
|
||||
|
||||
## Ein Gerät lässt sich nicht löschen
|
||||
|
||||
**Ursache:** an dem Gerät hängt mindestens ein Lauf — die Meldung nennt die Zahl. Ein Lauf muss für
|
||||
immer nachvollziehbar bleiben. Oder deine Rolle ist nicht **Administrator**; nur er sieht den Knopf.
|
||||
|
||||
**Was tun:** **archivieren** statt löschen. Das Gerät verschwindet aus allen Auswahllisten und nimmt
|
||||
keine neue Arbeit an, bleibt aber in jeder Historie — und lässt sich mit **wieder freigeben**
|
||||
zurückholen.
|
||||
|
||||
Und bedenke: eine echte Löschung **verbrennt den Tag-Code für immer**. Ein schon gedruckter Aufkleber
|
||||
dieses Codes ist danach wertlos.
|
||||
|
||||
## Eine Vorlage steht nicht zur Wahl
|
||||
|
||||
**Ursache:** eine von vier, in dieser Reihenfolge zu prüfen:
|
||||
|
||||
1. Sie hat **keine veröffentlichte Version** — ein Entwurf ist noch niemandes Arbeitsanweisung.
|
||||
2. Sie ist **archiviert**.
|
||||
3. Sie gehört **einem anderen Kunden** („nur Musterfirma GmbH“).
|
||||
4. Auf der Geräteseite: sie verlangt **Pflichtangaben**. Dann steht sie mit dem Zusatz „fragt noch
|
||||
nach Angaben“ dabei und führt in den Start-Dialog, statt sofort zu starten — hier wird ja niemand
|
||||
gefragt.
|
||||
|
||||
**Was tun:** Fall 1 und 2 löst ein Redakteur auf der Vorlagenseite (**Veröffentlichen**
|
||||
beziehungsweise **wieder freigeben**), Fall 3 ein Administrator über die Kundenzuordnung in den
|
||||
Kopfdaten. Fall 4 ist kein Fehler: nimm den Start-Dialog.
|
||||
|
||||
## Ein Lauf oder ein Gerät ist nicht auffindbar
|
||||
|
||||
**Ursache und was tun:**
|
||||
|
||||
- **Die Liste ist gekappt.** Die Laufliste zeigt höchstens 200 Läufe, die Archivsuche höchstens 100
|
||||
Treffer, die Gerätehistorie die letzten 20. Steht das dabei, such genauer statt zu blättern:
|
||||
Titel, Ticket, Hostname, Person oder Tag-Code.
|
||||
- **Der Lauf ist archiviert.** Archivierte Läufe stehen **nicht** in der Laufliste. Nimm das
|
||||
**Archiv** — dort auch das Häkchen **auch offene und laufende Läufe**, wenn du beides zugleich
|
||||
suchst.
|
||||
- **Die Person ist deaktiviert.** Setz in der Personenliste das Häkchen **auch deaktivierte**.
|
||||
- **Das Gerät ist archiviert.** Setz in der Geräteliste das Häkchen **auch archivierte**.
|
||||
- **Es gehört einem anderen Kunden.** Dann ist es für dich nicht vorhanden, und daran ändert auch ein
|
||||
weitergegebener Link nichts.
|
||||
@@ -0,0 +1,55 @@
|
||||
# Laufzettel — Anleitung
|
||||
|
||||
Laufzettel ist eine Checkliste für wiederkehrende IT-Arbeiten. Ein Redakteur schreibt einmal auf,
|
||||
was bei einer PC-Neuinstallation, einem Onboarding oder einem Patchday zu tun ist — das ist eine
|
||||
**Vorlage**. Aus einer veröffentlichten Vorlage entsteht ein **Lauf**: die Abschrift für einen
|
||||
bestimmten Fall, mit einem bestimmten Gerät und einer bestimmten Person. Den Lauf arbeitet ein
|
||||
Techniker Schritt für Schritt ab, oft am Handy, direkt am Gerät. Am Ende wird er abgeschlossen und
|
||||
archiviert und ändert sich nie wieder.
|
||||
|
||||
Auf jedem Gerät klebt ein QR-Aufkleber. Wer ihn scannt, landet auf der Geräteseite und sieht, was
|
||||
dort zu tun ist und was dort schon getan wurde. Der Code auf dem Aufkleber wird nie geändert und
|
||||
nie an ein zweites Gerät vergeben — er ist die einzige Angabe am Gerät, die Jahre hält.
|
||||
|
||||

|
||||
|
||||
## Wer welches Kapitel braucht
|
||||
|
||||
**Techniker** — du arbeitest Läufe ab, scannst Aufkleber und druckst Etiketten:
|
||||
|
||||
- [01 Erste Schritte](01-erste-schritte.md) — anmelden, wo was steht
|
||||
- [02 Läufe abarbeiten](02-laeufe-abarbeiten.md) — der Alltag, am Schreibtisch und am Handy
|
||||
- [03 QR-Aufkleber und Tags](03-qr-tags.md) — scannen, registrieren, Etiketten drucken
|
||||
- [08 Fehlerbehebung](08-fehlerbehebung.md) — wenn etwas klemmt
|
||||
|
||||
**Administrator oder Redakteur** — du richtest ein und pflegst:
|
||||
|
||||
- [04 Vorlagen bauen](04-vorlagen.md) — Abschnitte, Schritte, Variablen, veröffentlichen
|
||||
- [05 Mitarbeiter, Abteilungen und Geräte](05-mitarbeiter-geraete.md) — Stammdaten und CSV-Import
|
||||
- [06 Verzeichnis anbinden](06-verzeichnis.md) — Active Directory als Quelle der Personen
|
||||
- [07 Verwaltung](07-admin.md) — Benutzer, Rollen, Einstellungen, Betriebsmodus, Kunden
|
||||
|
||||
## Zwei Betriebsmodi
|
||||
|
||||
Laufzettel läuft in einem von zwei Modi. Der Modus entscheidet, ob es eine Kundenebene gibt, und
|
||||
ändert einige Beschriftungen.
|
||||
|
||||
| Modus | Für wen | Kundenebene |
|
||||
|---|---|---|
|
||||
| **Intern** | eine Firma und ihre eigenen Mitarbeiter | unsichtbar |
|
||||
| **Dienstleistung** | IT-Dienstleister mit mehreren Kunden | sichtbar: Kundenliste, Kundenwahl, Kürzel auf dem Etikett |
|
||||
|
||||
Im Modus Intern heißt der Menüpunkt „Mitarbeiter & Geräte“, im Modus Dienstleistung „Personen &
|
||||
Geräte“; dort kommt außerdem „Kunden“ dazu, und das Verzeichnis fällt weg. Wo diese Anleitung
|
||||
„Person“ schreibt, heißt es im Modus Intern auch „Mitarbeiter“ — gemeint ist dasselbe. Umgestellt
|
||||
wird der Modus unter Admin, siehe [Kapitel 07](07-admin.md).
|
||||
|
||||
## Drei Zusagen, die überall gelten
|
||||
|
||||
1. **Eine veröffentlichte Version wird nie verändert.** Sonst zeigte ein alter Lauf Schritte, die
|
||||
es damals nicht gab. „Bearbeiten“ erzeugt stattdessen eine Kopie als Entwurf.
|
||||
2. **Ein archivierter Lauf ist schreibgeschützt.** Kein Haken, keine Notiz, kein Kommentar geht
|
||||
danach noch. Nur ein Administrator holt ihn zurück.
|
||||
3. **Gelöscht wird fast nichts.** Geräte, Abteilungen, Vorlagen und Kunden werden archiviert,
|
||||
Personen nur deaktiviert. Ein archivierter Lauf muss auch in zehn Jahren noch sagen können, für
|
||||
wen er lief.
|
||||
|
After Width: | Height: | Size: 394 KiB |
|
After Width: | Height: | Size: 137 KiB |
|
After Width: | Height: | Size: 376 KiB |
|
After Width: | Height: | Size: 160 KiB |
|
After Width: | Height: | Size: 376 KiB |
|
After Width: | Height: | Size: 160 KiB |
|
After Width: | Height: | Size: 179 KiB |
|
After Width: | Height: | Size: 127 KiB |
|
After Width: | Height: | Size: 282 KiB |
|
After Width: | Height: | Size: 128 KiB |
|
After Width: | Height: | Size: 303 KiB |
|
After Width: | Height: | Size: 130 KiB |
|
After Width: | Height: | Size: 346 KiB |
|
After Width: | Height: | Size: 125 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 165 KiB |
|
After Width: | Height: | Size: 127 KiB |
|
After Width: | Height: | Size: 260 KiB |
|
After Width: | Height: | Size: 164 KiB |
|
After Width: | Height: | Size: 148 KiB |
|
After Width: | Height: | Size: 90 KiB |
|
After Width: | Height: | Size: 104 KiB |
|
After Width: | Height: | Size: 88 KiB |
|
After Width: | Height: | Size: 800 KiB |
|
After Width: | Height: | Size: 110 KiB |
|
After Width: | Height: | Size: 228 KiB |
|
After Width: | Height: | Size: 99 KiB |
|
After Width: | Height: | Size: 187 KiB |
|
After Width: | Height: | Size: 102 KiB |
|
After Width: | Height: | Size: 130 KiB |
|
After Width: | Height: | Size: 93 KiB |
|
After Width: | Height: | Size: 368 KiB |
|
After Width: | Height: | Size: 124 KiB |
|
After Width: | Height: | Size: 41 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 168 KiB |
|
After Width: | Height: | Size: 118 KiB |
|
After Width: | Height: | Size: 435 KiB |
|
After Width: | Height: | Size: 111 KiB |
|
After Width: | Height: | Size: 172 KiB |
|
After Width: | Height: | Size: 78 KiB |
|
After Width: | Height: | Size: 191 KiB |
|
After Width: | Height: | Size: 98 KiB |
|
After Width: | Height: | Size: 605 KiB |
|
After Width: | Height: | Size: 135 KiB |
|
After Width: | Height: | Size: 102 KiB |
|
After Width: | Height: | Size: 63 KiB |
|
After Width: | Height: | Size: 156 KiB |
|
After Width: | Height: | Size: 112 KiB |
|
After Width: | Height: | Size: 331 KiB |
|
After Width: | Height: | Size: 129 KiB |
|
After Width: | Height: | Size: 216 KiB |
|
After Width: | Height: | Size: 117 KiB |
|
After Width: | Height: | Size: 438 KiB |
|
After Width: | Height: | Size: 164 KiB |
|
After Width: | Height: | Size: 368 KiB |
|
After Width: | Height: | Size: 130 KiB |
|
After Width: | Height: | Size: 510 KiB |
|
After Width: | Height: | Size: 119 KiB |
|
After Width: | Height: | Size: 485 KiB |
|
After Width: | Height: | Size: 121 KiB |
|
After Width: | Height: | Size: 254 KiB |
|
After Width: | Height: | Size: 118 KiB |