Benutzerhandbuch
Pakete erstellen, bearbeiten, bauen und verteilen
Rollen: Leser, Packager, Releaser, Administrator
Überblick
Das Benutzerhandbuch beschreibt die tägliche Arbeit mit oPBWeb: Pakete anlegen oder importieren, control-Daten und Scripte bearbeiten, Pakete bauen und auf die Depots deiner opsi-Configserver verteilen, von der Test- bis zur Produktionsstufe. Dazu kommen die Bereiche Snippets, Depots und Jobs sowie die Einstellungen für dein eigenes Konto.
Was du davon nutzen kannst, hängt von deiner Rolle ab. Schaltflächen, die deine Rolle nicht erlaubt, blendet oPBWeb aus oder deaktiviert sie. Der Server prüft jede Aktion zusätzlich.
Rollen
Die Rollen bauen aufeinander auf: Jede Rolle hat alle Rechte der Rolle davor. Deine Rolle siehst du im Avatar-Menü oben rechts unter deinem Namen.
| Rolle | Was du damit tun darfst |
|---|
| Leser | Alles ansehen außer Benutzer und Rollen und Einstellungen: Paketliste, Paket-Editor (nur lesen), Quelltext, Snippets, Vorlagen, Jobs, Depots, Systemstatus. Gebaute .opsi- und .md5-Dateien herunterladen. |
| Packager | Zusätzlich Pakete anlegen (auch aus einem Installer), importieren und bearbeiten, bauen, neue Versionen anlegen, Versionen löschen, eigene Snippets pflegen, Depots abgleichen, mit der Workbench abgleichen. Installieren, Deinstallieren und Pakete übernehmen auf Depots der Stufen Test und Staging. |
| Releaser | Zusätzlich Installieren, Deinstallieren und Pakete übernehmen auf Depots der Stufe Produktion. |
| Administrator | Zusätzlich Benutzer, Configserver, Einstellungen, Vorlagen für den Installer-Assistenten, Stufen von Configservern und Depots, globale Snippets und die Speicherbereinigung. Siehe Fachliche Administration
. |
Depot-Stufen
oPBWeb kann mehrere opsi-Configserver verwalten. Jeder Configserver hat eine Stufe: Produktion, Staging oder Test. Seine Depots erben diese Stufe, solange ein Administrator für ein Depot keine eigene festlegt; neue Configserver stehen zunächst auf Produktion. Die Stufe entscheidet, wer auf dem Depot installieren, deinstallieren, Pakete übernehmen, gesperrte Produkte entsperren und Repository-Dateien löschen darf:
| Stufe | Benötigte Rolle |
|---|
| Test | Packager oder höher |
| Staging | Packager oder höher |
| Produktion | Releaser oder höher |
Im Installationsdialog sind Depots, für die deine Rolle nicht reicht, mit „erfordert Rolle Releaser“ markiert und nicht auswählbar. Eine getestete Version bringst du mit Übernehmen … unverändert von einer Stufe auf die nächste, siehe Auf andere Stufe übernehmen
.
Lebenszyklus eines Pakets
Jede Paketversion ist entweder Entwurf oder Freigegeben:
- Entwurf: Eine neue, importierte oder kopierte Version ist ein Entwurf. Du kannst sie beliebig bearbeiten.
- Bauen: Bauen erzeugt die
.opsi-Datei. Die Version bleibt ein Entwurf, und du kannst sie beliebig oft neu bauen. Änderst du danach etwas, zeigt oPBWeb „seit dem Bauen geändert“ an. - Installieren gibt frei: Mit Installieren … verteilst du den aktuellen Build auf Depots. Dabei wird die Version freigegeben und schreibgeschützt.
- Übernehmen: Mit Übernehmen … bringst du die getestete, freigegebene Version (denselben Build) auf die Depots der nächsten Stufe, etwa von Test nach Staging und dann nach Produktion.
- Weiterarbeiten: Für Änderungen legst du eine Neue Version an (bearbeitbare Kopie mit neuer Versionsnummer) oder setzt die Version Zurück auf Entwurf (gleiche Versionsnummer).
Details findest du in Bauen und verteilen
.
Kapitel
- Erste Schritte
– Anmeldung, Aufbau der Oberfläche, Suche
- Pakete
– Paketliste, neue Pakete, Import, Meta-Pakete
- Paket aus Installer erzeugen
– Installer analysieren und daraus ein Paket erzeugen, wie mit dem opsi-setup-detector
- Paket-Editor
– control-Daten, Abhängigkeiten, Properties, Changelog
- Dateien des Pakets
– Dateibaum, Hochladen, MSI-Informationen, Installer analysieren, Struktur
- Scripteditor
– opsi-script bearbeiten mit Vervollständigung, Hilfe und Prüfung
- Bauen und verteilen
– Bauen, Installieren, Deinstallieren, Freigabe, Übernehmen auf andere Stufen
- Snippets
– Textbausteine anlegen, einfügen, importieren
- Depots
– Configserver und Depots, installierte Produkte, Dateien, Repository, Vergleich
- Jobs
– laufende und abgeschlossene Aufträge verfolgen
- Konto und Sprache
– Standardsprache, Passwort, Abmelden
Erste Schritte
Anmelden, Aufbau der Oberfläche und schnelles Navigieren mit der Suche
Rollen: Leser, Packager, Releaser, Administrator
Überblick
Dieses Kapitel zeigt dir, wie du dich anmeldest, wie die Oberfläche von oPBWeb aufgebaut ist und wie du mit der Suche schnell zu Paketen, Dateien und Befehlen springst. Am Ende findest du eine kurze Übersicht über Rollen und den Lebenszyklus eines Pakets.
Anmelden
- Öffne oPBWeb im Browser. Ohne gültige Sitzung landest du auf der Anmeldeseite.
- Gib deinen Benutzernamen und dein Passwort ein.
- Klick auf Anmelden.
Nach der Anmeldung öffnet sich die Paketliste, oder die Seite, die du ursprünglich aufrufen wolltest. Auf der Anmeldeseite kannst du oben in der Ecke schon die Sprache (DE/EN) und Hell/Dunkel umschalten.
Hinweis
Nach fünf fehlgeschlagenen Anmeldeversuchen wird ein lokales Konto für 15 Minuten gesperrt („Konto gesperrt bis HH:MM Uhr.“), und zwar für den Rechner, von dem die Versuche kamen. Ein Administrator kann die Sperre vorzeitig aufheben. Wenn deine Organisation LDAP nutzt, meldest du dich mit deinem Verzeichniskonto an; deine Rolle ergibt sich dann aus deinen LDAP-Gruppen.
Deine Sitzung bleibt bis zu sieben Tage erhalten, solange du dich nicht abmeldest. Abmelden kannst du dich über das Avatar-Menü, siehe Konto und Sprache
.
Aufbau der Oberfläche
Die Oberfläche ist wie eine Entwicklungsumgebung aufgebaut: oben die Kopfleiste, links die Bereichsleiste, in der Mitte der Arbeitsbereich und unten die Statusleiste.

Kopfleiste
Von links nach rechts findest du:
| Element | Funktion |
|---|
| ☰ | Blendet die Beschriftungen der Bereichsleiste ein oder aus (Tooltip „Menü mit Beschriftung ein-/ausklappen“). |
| Logo oPBWeb | Führt zurück zur Paketliste. |
| Titel | Zeigt, wo du gerade bist, im Paket-Editor zum Beispiel „Pakete › firefox“. |
| Suchfeld „Paket, Datei oder Befehl …“ | Öffnet die Suche
(Tastenkürzel Strg K, am Mac ⌘ K). |
| Buch-Symbol | Öffnet dieses Handbuch in einem neuen Tab (Handbuch (neuer Tab)), in der aktuellen Sprache der Oberfläche. |
| DE / EN | Schaltet die Sprache für diese Sitzung um. Beim nächsten Anmelden gilt wieder deine Standardsprache. |
| Mond-Symbol | Wechselt zwischen hellem und dunklem Design (Hell oder dunkel umschalten). Solange du nichts wählst, folgt oPBWeb der Einstellung deines Betriebssystems. |
| Avatar | Zeigt deine Initialen. Das Menü enthält deinen Namen und deine Rolle, Standardsprache, Mein Konto (Kontodaten und Farben im Editor
), Passwort ändern und Abmelden. |
Bereichsleiste
Über die Bereichsleiste links wechselst du zwischen den Bereichen:
| Bereich | Inhalt |
|---|
| Pakete | Liste aller Pakete mit Details, Startseite nach der Anmeldung |
| Paket-Editor | Öffnet das zuletzt bearbeitete Paket |
| Snippets | Textbausteine für opsi-script |
| Jobs | Alle Aufträge mit Live-Protokoll; ein Zähler zeigt deine laufenden Jobs |
| Depots | Configserver und ihre Depots, installierte Produkte, Dateien, Repository |
| Systemstatus (unten) | Erreichbarkeit der Dienste |
| Benutzer und Rollen, Einstellungen (unten) | Nur für Administratoren sichtbar |
Ohne Beschriftung zeigt die Leiste nur Symbole; fahr mit der Maus darüber, um den Namen als Tooltip zu sehen.
Statusleiste
Die Statusleiste unten zeigt links die Versionen von Frontend und Backend. Ist der Server nicht erreichbar, steht dort „Backend nicht verbunden“.
Daneben erscheint ein orangefarbener Hinweis, wenn mit einem Configserver etwas zu tun ist, etwa „Kein Configserver eingerichtet“, „Configserver 1: neues CA-Zertifikat“ oder „Configserver 1: CA läuft in 30 Tagen ab“. Für Administratoren führt der Hinweis in die Ansicht Depots. Rechts siehst du den Fortschritt der Jobs, die du in diesem Browser-Tab gestartet hast. Ein Klick darauf öffnet den Job im Bereich Jobs
.
Bereiche in der Breite anpassen
Viele Ansichten sind in Bereiche geteilt, zum Beispiel Paketliste und Paketdetails. Die Trennlinien kannst du verschieben:
- Ziehen mit der Maus ändert die Breite.
- Mit Fokus auf der Trennlinie verschieben die Pfeiltasten sie um 20 Pixel.
- Ein Doppelklick setzt die Breite zurück.
oPBWeb merkt sich die Breiten in deinem Browser.
Suche
Mit der Suche springst du per Tastatur zu Paketen, Dateien und Befehlen, ohne zu klicken.
- Drück
Strg K (am Mac ⌘ K) oder klick in das Suchfeld „Paket, Datei oder Befehl …“. - Tipp ein paar Buchstaben ein.
- Wähl mit den Pfeiltasten ↑ und ↓ einen Treffer aus und drück
Enter. Mit Esc schließt du die Suche.

Die Treffer sind in Gruppen sortiert, höchstens 14 auf einmal:
| Gruppe | Inhalt |
|---|
| Dateien im Paket | Dateien des gerade geöffneten Pakets (nur, wenn ein Paket offen ist). Ein Treffer öffnet die Datei im Editor. |
| Pakete | Pakete nach Product-ID, mit Version und Name als Hinweis |
| Befehle | Die Bereiche (Pakete, Paket-Editor, Snippets …), Meine Jobs und Hell oder dunkel umschalten |
Exakte Treffer stehen vor Treffern am Wortanfang, danach folgen Treffer irgendwo im Namen. Findet die Suche nichts davon, sucht sie unscharf (die Buchstaben in dieser Reihenfolge, auch mit Lücken).
Rollen im Überblick
Was du in oPBWeb tun darfst, legt deine Rolle fest:
| Rolle | Kurz gesagt |
|---|
| Leser | nur lesen |
| Packager | Pakete bearbeiten, bauen, auf Test- und Staging-Depots installieren |
| Releaser | zusätzlich auf produktive Depots verteilen |
| Administrator | zusätzlich Benutzer, Server und Einstellungen |
Die ausführliche Tabelle findest du in der Übersicht des Benutzerhandbuchs
.
Lebenszyklus in einem Bild
Entwurf ──Bauen (beliebig oft)──► „gebaut“
▲ │ Installieren …
│ ▼
└──── Zurück auf Entwurf ──── Freigegeben (schreibgeschützt)
│ Neue Version
▼
neuer Entwurf (Kopie)
Ein Entwurf lässt sich bearbeiten und bauen. Erst das Installieren auf einem Depot gibt die Version frei. Wie das im Einzelnen abläuft, steht in Bauen und verteilen
.
Pakete
Paketliste, neue Pakete anlegen, .opsi-Dateien und Workbench-Ordner importieren, Meta-Pakete erstellen
Rollen: Leser, Packager, Releaser, Administrator
Überblick
Der Bereich Pakete ist die Startseite von oPBWeb. Hier siehst du alle Pakete mit ihrer neuesten Version, prüfst in den Paketdetails, auf welchen Depots sie installiert sind, und legst neue Pakete an. Die Werkzeugleiste bietet dafür Workbench …, Übernehmen …, Importieren, Meta-Paket …, Aus Installer … und Neues Paket; Aus Installer … erzeugt ein Paket direkt aus einem Installer, siehe Paket aus Installer erzeugen
. Als Leser kannst du die Liste und die Details ansehen; Anlegen, Importieren und alle ändernden Aktionen brauchen mindestens die Rolle Packager.
Die Paketliste

Die Tabelle zeigt pro Paket die neueste Version:
| Spalte | Inhalt |
|---|
| Product-ID | Eindeutige Kennung des Produkts |
| Name | Anzeigename |
| Version | Produktversion und Paketversion, zum Beispiel 1.0-3 |
| Typ | localboot oder netboot |
| Format | Format der control-Datei: INI oder TOML |
| Status | Entwurf oder Freigegeben |
| Geändert von, Geändert | Wer die Version zuletzt geändert hat und wann |
Ein Klick wählt ein Paket aus und zeigt rechts seine Details. Ein Doppelklick öffnet es im Paket-Editor
.
Filtern
- Die Schaltflächen Alle, Entwürfe und Freigegeben filtern nach dem Status der neuesten Version. Die Zahl dahinter zeigt, wie viele Pakete jeweils passen.
- Archiv zeigt statt der aktiven Pakete die archivierten (siehe Paket archivieren
). Gibt es keine, erscheint „Keine archivierten Pakete.“
- Im Feld „Filtern …“ suchst du nach Product-ID oder Name.
Passt kein Paket, erscheint „Kein Paket passt zum Filter.“
Paketdetails
Im rechten Bereich siehst du zum ausgewählten Paket:
- Kopf: Produktlogo (falls vorhanden), Product-ID, Version, Status, Name und die erste Zeile der Beschreibung.
- Schaltflächen: Im Editor öffnen und Quelltext (öffnet den Editor direkt in der Quelltext-Ansicht). Als Packager zusätzlich Bauen (nur bei Entwürfen) und Installieren … (nur, wenn die neueste Version aktuell gebaut ist). Ist der Build veraltet, steht dort „seit dem Bauen geändert“.
- Eckdaten: Typ, Priorität, setup- und uninstall-Script, Abhängigkeiten, Properties, Anzahl der Dateien und Scripte, Format (zum Beispiel „INI · Changelog eingebettet“) und Herkunft („neu angelegt“, „importiert“, „kopiert von …“ oder „aus der Workbench“).
- Verteilung: Für jedes Depot die Stufe (Produktion, Staging oder Test) und die dort installierte Version, gruppiert nach Configserver (siehe Verteilung
). Als Packager übernimmst du das Paket mit Auf andere Stufe übernehmen … von einer Stufe auf die nächste (siehe Auf andere Stufe übernehmen
). Ist das Produkt irgendwo installiert, kannst du es mit Deinstallieren … entfernen.
- Workbench: Auf welcher Workbench das Paket liegt, siehe Workbench
.
- Versionen: Alle Versionen des Pakets mit Status und Datum. Ein Klick öffnet die jeweilige Version im Editor.
- Paket (ab Packager): Archivieren bzw. bei archivierten Paketen Wiederherstellen und Paket löschen …, siehe Paket archivieren
und Paket löschen
.
Verteilung

Die Tabelle Verteilung fasst die Depots je Configserver zusammen. Die Kopfzeile eines Servers nennt, auf wie vielen seiner Depots das Paket installiert ist („1 von 3 installiert“). Darunter steht je Depot die Stufe und die installierte Version:
- Eine kursive Stufe hat das Depot von seinem Configserver geerbt.
- Weicht die installierte Version von der neuesten ab, ist sie orange markiert.
- Ein Klick auf die Kopfzeile eines Configservers klappt seine Depots zu oder auf. oPBWeb merkt sich das in diesem Browser.
- „Depot suchen“ grenzt die Depots nach Depot-ID oder Name des Configservers ein; während der Suche sind alle Gruppen aufgeklappt.
- Der Chip Nur installierte blendet alle Depots aus, auf denen das Paket nicht installiert ist. Die Zahl im Chip nennt die Depots mit Installation.
Workbench
Der Abschnitt Workbench zeigt, in welchen Projektordnern der Workbenches das Paket liegt: Configserver, Projektordner (mit Pfad, wenn er in einem Gruppenordner liegt, zum Beispiel develop/firefox) und Version. Weicht die Version von der neuesten in oPBWeb ab, ist sie orange markiert. Liegt das Paket auf keiner Workbench, steht dort „Auf keiner Workbench.“
oPBWeb liest die Workbench nicht bei jedem Öffnen, sondern merkt sich, was es zuletzt gesehen hat. Aktuell wird die Angabe
Ignorierte Ordner
lässt jedes Einlesen aus; beim Ignorieren verschwinden die Projektordner darunter sofort aus diesem Abschnitt.
Die Zeile „Stand:“ darunter nennt je Configserver, wann seine Workbench zuletzt vollständig gelesen wurde, oder „nie gelesen“. Hast du die Workbench direkt auf dem Server geändert, gleich vorher ab.
Bauen, Installieren und Deinstallieren sind in Bauen und verteilen
beschrieben. Mehrere Pakete auf einmal von einer Stufe auf die nächste bringst du mit Übernehmen … in der Werkzeugleiste der Paketliste, siehe Auf andere Stufe übernehmen
.
Neues Paket anlegen
Rollen: Packager, Releaser, Administrator
Klick in der Paketliste auf Neues Paket.

Füll die Felder aus:
- Product-ID (Pflicht): nur Kleinbuchstaben, Ziffern, Punkt, Binde- und Unterstrich. Das erste Zeichen muss ein Kleinbuchstabe oder eine Ziffer sein, insgesamt höchstens 128 Zeichen. Beispiel: firefox-esr.
- Name: Anzeigename. Lässt du ihn leer, übernimmt oPBWeb die Product-ID.
- Produktversion (Pflicht): Version der Software, vorbelegt aus den Einstellungen (Standard
1.0). - Paketversion (Pflicht): Version des Pakets, vorbelegt aus den Einstellungen (Standard
1).
Klick auf Anlegen. Solange die Product-ID ungültig ist, bleibt die Schaltfläche deaktiviert.
oPBWeb legt das Paket als Entwurf an und öffnet es im Paket-Editor. Das neue Paket enthält bereits ein setup- und ein uninstall-Script als Vorlage (CLIENT_DATA/setup.opsiscript, CLIENT_DATA/uninstall.opsiscript) und einen leeren Ordner SERVER_DATA/. Priorität, control-Format und Ablage des Changelogs kommen aus den Einstellungen für neue Pakete
.
Erlaubte Zeichen in Versionen
Produkt- und Paketversion dürfen nur Buchstaben, Ziffern und die Zeichen ., + und ~ enthalten. Die Produktversion darf höchstens 32, die Paketversion höchstens 16 Zeichen lang sein. Gibt es die Product-ID schon, meldet oPBWeb „Das Produkt … existiert bereits.“ – lege dann im Paket-Editor eine Neue Version an.
.opsi-Dateien importieren
Rollen: Packager, Releaser, Administrator
Vorhandene Pakete übernimmst du, indem du ihre .opsi-Dateien importierst. Jede importierte Version wird ein Entwurf.
Klick auf Importieren. Der Dialog „Pakete importieren“ öffnet sich.

Zieh eine oder mehrere .opsi-Dateien in das Feld „.opsi-Dateien hierher ziehen oder auswählen“ oder klick auf Dateien auswählen. Andere Dateitypen und doppelt gewählte Dateien werden ignoriert.
Optional: Aktivier Vorhandene Entwurfsversion gleicher Nummer überschreiben, wenn eine schon vorhandene Version ersetzt werden soll.
Klick auf Import starten.
oPBWeb lädt die Dateien nacheinander hoch und importiert sie. Jede Zeile zeigt den Zustand: „bereit“, „lädt hoch“, „wird importiert“, „importiert“ oder „fehlgeschlagen“. Unter der Liste läuft das Protokoll aller Importe in einem gemeinsamen Feld mit. Solange der Import läuft, ist Schließen deaktiviert.
Wann wird überschrieben?
Gibt es die Version (Produktversion und Paketversion) schon, schlägt der Import ohne die Option fehl. Mit der Option wird nur ein Entwurf überschrieben, eine freigegebene Version nie. In diesem Fall meldet der Job „Die vorhandene Version ist freigegeben und wird nicht überschrieben.“
Beim Import übernimmt oPBWeb die control-Daten und den Changelog in seine Datenbank. Das Format der control-Datei (INI oder TOML) und die Ablage des Changelogs bleiben erhalten. Alte Sicherungen control-*.bak des opsiPackageBuilders übernimmt oPBWeb nicht; das Job-Protokoll nennt ihre Anzahl.
Aus der Workbench importieren
Rollen: Packager, Releaser, Administrator
Liegen Paketquellen als Projektordner in der Workbench eines Configservers, kannst du sie direkt übernehmen – einzeln, mehrere oder alle auf einmal.

Klick auf Workbench …. Der Dialog „Import aus der Workbench“ öffnet sich.
Wähl oben unter Configserver den Server, dessen Workbench du lesen willst. Die Liste zeigt jeden Server mit Name und Stufe. oPBWeb merkt sich deine Wahl in diesem Browser; ohne frühere Wahl ist der erste Server der Stufe Test vorbelegt, sonst der erste Server. Der Dialog liest die Workbench automatisch ein („Lese Workbench …“), auch nach jedem Wechsel des Servers.
Prüf die Tabelle. Sie zeigt die Workbench als Baum: Ordner ohne OPSI-Ordner gelten als Gruppen (fett, mit / am Ende) und lassen sich mit dem Pfeil davor zu- und aufklappen; oPBWeb durchsucht sie bis vier Ebenen tief. Projektordner stehen darunter eingerückt mit Product-ID, Version, Format und Zustand:
| Zustand | Bedeutung |
|---|
| „neues Paket“ | Die Product-ID gibt es in oPBWeb noch nicht. |
| „neue Version“ | Das Paket gibt es, diese Version noch nicht. |
| „Entwurf vorhanden“ | Die Version gibt es schon als Entwurf. |
| „freigegeben vorhanden“ | Die Version gibt es schon und sie ist freigegeben. |
| „archiviert“ | Das Paket ist archiviert und lässt sich nicht importieren. |
| „… · installiert“ | Zusatz, wenn genau diese Version auf einem Depot des gewählten Configservers installiert ist (der Tooltip nennt die Depots). Der Import gibt sie frei, siehe Installierte Versionen freigeben
. |
Projektordner mit unlesbarer control-Datei zeigen den Grund in der Spalte Format und haben kein Häkchen. Mit dem Filterfeld grenzt du die Liste ein; dann erscheinen nur die passenden Projekte mit ihrem vollen Pfad (zum Beispiel develop/firefox).
Setz die Häkchen bei den Projektordnern, die du importieren willst. Das Häkchen im Tabellenkopf wählt alle aus, Alle neuen auswählen wählt alle Ordner, deren Version es in oPBWeb noch nicht gibt.
Leg unter Vorhandene Versionen fest, was mit Ordnern geschehen soll, deren Version es schon gibt:
- „überspringen“ (voreingestellt): Der Ordner wird nicht importiert.
- „Entwürfe überschreiben“: Ein vorhandener Entwurf wird ersetzt. Freigegebene Versionen werden übersprungen.
- „als nächste Paketversion importieren“: oPBWeb legt die Version mit der nächsten freien Paketversion an (höchste numerische Paketversion dieser Produktversion + 1).
Klick auf Ausgewählte importieren (n).
Der Import läuft als ein einziger Job „Import aus Workbench (Server), Projekte: n“ und arbeitet die Ordner nacheinander ab. Den Fortschritt siehst du als „Importiere … 40 %“. Schließt du den Dialog, läuft der Job trotzdem weiter. Schlägt ein Ordner fehl, macht oPBWeb mit den übrigen weiter.
Danach zeigt jede Zeile ihr Ergebnis: „importiert als 1.0-2“, „übersprungen“ oder „fehlgeschlagen“ (den Grund zeigt der Tooltip). Unten steht eine Zusammenfassung wie „3 importiert, 1 übersprungen, 0 fehlgeschlagen“. Das Job-Protokoll unter Jobs
enthält eine Zeile pro Projekt.
Übernommen werden nur die Ordner OPSI, CLIENT_DATA und SERVER_DATA; andere Inhalte der Projektordner bleiben unberührt. Mit Neu einlesen aktualisierst du die Liste. Freigegebene Versionen überschreibt der Import nie.
Installierte Versionen freigeben
Normalerweise wird eine Version erst freigegeben, wenn du sie aus oPBWeb heraus installierst. Ein Projektordner, dessen Version bereits auf einem Depot des gewählten Configservers installiert ist, wurde aber dort schon gebaut und installiert (zum Beispiel mit opsi-makepackage und opsi-package-manager). Solche Versionen gibt der Import direkt frei, statt sie als Entwurf anzulegen:
- Liegt im Projektordner die passende Datei
<product-id>_<version>.opsi (zum Beispiel firefox_128.0-1.opsi), übernimmt oPBWeb sie als Build der Version. Die Zeile zeigt danach „importiert als 128.0-1“ und „freigegeben“. oPBWeb prüft nur, dass die Datei dieses Produkt in dieser Version enthält; dass sie mit dem installierten Paket übereinstimmt, kann es nicht nachweisen. - Fehlt die Datei oder ist sie nicht lesbar, entscheidet die Einstellung Workbench
: Die Version bleibt Entwurf („bleibt Entwurf“, Standard), oder oPBWeb baut sie selbst und gibt sie frei („gebaut und freigegeben“).
Welche Depots zählen, bestimmt der letzte Depot-Abgleich
des Configservers. Das Repository eines Depots spielt keine Rolle: opsi-package-manager -i legt ein Paket dort nur mit der Option -d ab.
Entwürfe, die schon vor dieser Prüfung importiert wurden oder bei denen die Einstellung inzwischen anders lautet, holst du mit Mit Depots abgleichen (n) nach. Die Schaltfläche fasst alle sichtbaren Zeilen mit „Entwurf vorhanden · installiert“ zusammen und startet den Job „Workbench mit Depots abgleichen (Server), Projekte: n“. Er importiert nichts erneut, sondern übernimmt nur die .opsi-Datei aus dem Projektordner beziehungsweise baut die Version gemäß Einstellung und gibt sie frei. Jede Zeile zeigt danach „freigegeben“, „gebaut und freigegeben“, „bleibt Entwurf“ oder „übersprungen“ (Tooltip mit Grund, etwa wenn die Version inzwischen kein Entwurf mehr ist). Die Freigabe steht im Protokoll
als version.released mit den Depots und der Herkunft des Builds.
Ordner ignorieren
Enthält die Workbench Ordner, deren Inhalt oPBWeb nicht kennen soll (zum Beispiel to_review oder develop/deprecated mit Altpaketen), klick in der Zeile des Ordners rechts auf Ignorieren. Das geht für Gruppen- und für Projektordner. Der Ordner bleibt ausgegraut und zugeklappt mit der Markierung „ignoriert“ in der Liste; sein Inhalt verschwindet aus der Tabelle und aus dem Abschnitt Workbench
der Paketansicht.
Die Liste der ignorierten Ordner gilt je Configserver und für jedes Einlesen: im Dialog, zeitgesteuert und beim Depot-Abgleich. Mit Wieder berücksichtigen nimmst du einen Ordner wieder auf; der Dialog liest die Workbench dann neu ein. Beide Schritte stehen im Protokoll
.
Einzelne Ordner kannst du auch unter Depots im Reiter Dateien mit In oPBWeb importieren übernehmen, siehe Depots
. Wurde eine importierte Version später direkt auf der Workbench geändert, holst du die Änderungen mit Mit Workbench abgleichen … im Paket-Editor nach, siehe Paket-Editor
.
Übergabe vom opsi-setup-detector
Rollen: Packager, Releaser, Administrator
Der opsi-setup-detector kann nach dem Erzeugen der Produktdateien den alten opsiPackageBuilder starten. Mit dem Launcher von oPBWeb öffnet sich an dieser Stelle stattdessen oPBWeb im Browser und fragt, ob du den neuen Workbench-Ordner importieren willst.
Du kannst den Launcher von Hand einrichten (nächster Abschnitt) oder als opsi-Paket über deine Depots verteilen, siehe Launcher als opsi-Paket verteilen
.
Übergabe oder Assistent?
Die Übergabe ist für alle, die den opsi-setup-detector auf ihrem Rechner weiter verwenden: Er analysiert und erzeugt die Produktdateien in der Workbench, oPBWeb importiert sie. Willst du alles in oPBWeb erledigen, nimm den Assistenten Aus Installer … in der Paketliste. Er analysiert den Installer im Worker und erzeugt das Paket aus denselben Vorlagen, ohne opsi-setup-detector und ohne Workbench, siehe Paket aus Installer erzeugen
.
Launcher von Hand einrichten
Lade den Launcher für dein System herunter: im Dialog „Import aus der Workbench“ über Launcher für den opsi-setup-detector herunterladen oder direkt unter /downloads/ deiner oPBWeb-Adresse. Es gibt je eine ZIP-Datei für Windows, macOS und Linux (amd64 und arm64).
Entpack die Datei. Sie heißt opsipackagebuilder.exe (Windows) bzw. opsipackagebuilder. Den Namen darfst du nicht ändern, der opsi-setup-detector akzeptiert nur diesen.
Leg sie an einen Ort, an dem der opsi-setup-detector sie findet, oder trag den Pfad in dessen Konfiguration unter PathToOpsiPackageBuilder ein:
| System | Standardpfad |
|---|
| Windows | C:\Program Files (x86)\opsi PackageBuilderNG\opsipackagebuilder.exe |
| macOS | /Applications/opsiPackageBuilder.app/Contents/MacOS/opsipackagebuilder |
| Linux | /usr/bin/opsipackagebuilder |
Hinterleg einmalig die Adresse von oPBWeb:
opsipackagebuilder --set-url https://opbweb.example.org
Alternativ legst du neben dem Launcher eine Datei opb-launcher.conf mit der Zeile url = https://opbweb.example.org an (gilt dann für alle Benutzer des Rechners) oder setzt die Umgebungsvariable OPBWEB_URL.
Arbeitet der opsi-setup-detector mit einem verbundenen Laufwerk (zum Beispiel W:\) statt mit einem UNC-Pfad, hinterleg zusätzlich den Configserver dieser Workbench:
opsipackagebuilder --set-server opsi-test.example.org
Alternativ trägst du in opb-launcher.conf die Zeile server = opsi-test.example.org ein oder setzt die Umgebungsvariable OPBWEB_SERVER.
Der opsi-setup-detector und oPBWeb müssen dieselbe Workbench verwenden: Der opsi-setup-detector schreibt in die Workbench-Freigabe eines Configservers, und dieser Server muss in oPBWeb eingerichtet sein. Der Projektordner darf in Gruppenordnern liegen (\\opsi-test.example.org\opsi_workbench\develop\firefox ergibt develop/firefox); zeigt die Freigabe nicht auf die Workbench selbst, sucht oPBWeb den Ordner anhand des Pfadendes. Der Launcher teilt oPBWeb mit, um welchen Configserver es geht: Bei einem UNC-Pfad wie \\opsi-test.example.org\opsi_workbench\firefox ist es der Hostname aus dem Pfad, sonst der mit --set-server hinterlegte Server.
Hinweis
Der Launcher ist nicht signiert. Windows SmartScreen warnt beim ersten Start. Unter macOS entfernst du nach dem Download die Quarantäne mit xattr -d com.apple.quarantine opsipackagebuilder. Beides entfällt in der Regel, wenn der Launcher als opsi-Paket installiert wird.
Launcher als opsi-Paket verteilen
Laufen die Rechner mit dem opsi-setup-detector selbst als opsi-Clients, verteilst du den Launcher am einfachsten als opsi-Produkt. oPBWeb bringt das Paket opb-launcher fertig mit: ein Localboot-Produkt für Windows, Linux und macOS (amd64 und arm64), dessen Produktversion der Launcher-Version entspricht.
- Klick im Dialog „Import aus der Workbench“ unten auf Launcher als opsi-Paket anlegen ….
- Unter Adresse von oPBWeb steht die Adresse, unter der du oPBWeb gerade aufrufst. Sie wird Standardwert der Property
url. Ändere sie, wenn deine Anwender oPBWeb unter einer anderen Adresse erreichen. - Configserver für Workbench-Pfade ohne Hostnamen brauchst du nur, wenn der opsi-setup-detector mit einem verbundenen Laufwerk statt einem UNC-Pfad arbeitet. Der Wert wird Standardwert der Property
server; die Hostnamen deiner Configserver werden vorgeschlagen. - Klick auf Paket anlegen. Gibt es das Paket schon, bietet der Dialog wie bei der Übergabe Neue Version anlegen, Als … anlegen (nächste freie Paketversion) oder Entwurf überschreiben an.
- Das Paket entsteht als Entwurf und öffnet sich im Editor. Baue es und installiere es auf deine Depots, siehe Paket-Editor
und Depots
. Danach setzt du es auf den Rechnern mit dem opsi-setup-detector auf
setup.
Das Paket legt den Launcher dort ab, wo der opsi-setup-detector den alten opsiPackageBuilder sucht (Tabelle oben), und schreibt opb-launcher.conf mit url und server daneben. Unter Linux liegt der Launcher in /opt/opb-launcher/, /usr/bin/opsipackagebuilder ist ein Link darauf.
| Property | Bedeutung |
|---|
url | Adresse von oPBWeb (Pflicht) |
server | Configserver für Workbench-Pfade ohne Hostnamen; leer, wenn der Detector UNC-Pfade verwendet |
force_remove | true: Reste des alten opsiPackageBuilders ohne Rückfrage löschen: Programmordner, Deinstallationseintrag, Startmenü- und Desktop-Verknüpfungen (Windows), Debian-Paket opsipackagebuilder-sc (Linux), opsiPackageBuilder.app und opbHelpViewer.app (macOS). Standard false: ein vorhandener alter opsiPackageBuilder bleibt, nur seine opsipackagebuilder(.exe) wird ersetzt, das Script warnt im Log |
Das Paket hat die Abhängigkeiten uninstall/before auf die Produkte opsipackagebuilder und opsipackagebuilder_wlm: Ist eines davon über opsi installiert, wird es vorher deinstalliert. Fehlt ein Produkt auf dem Depot, ignoriert opsi die Abhängigkeit.
Hinweis
Mit force_remove löscht das Paket auch einen von Hand installierten opsiPackageBuilder samt Einstellungen in seinem Programmordner. Der ScriptEditor des alten opsiPackageBuilders verschwindet damit ebenfalls.
Bei der Deinstallation entfernt das Paket nur den Launcher und seine Konfigurationsdatei; Ordner werden nur gelöscht, wenn sie leer sind.
Übergabe nutzen
Wähl im opsi-setup-detector als Modus create opsi product files and start the interactive PackageBuilder und erzeuge das Produkt.
oPBWeb öffnet sich im Browser. Bist du nicht angemeldet, meldest du dich zuerst an.
Der Dialog „Übergabe vom opsi-setup-detector“ liest den Workbench-Ordner. Sind mehrere Configserver eingerichtet, ist unter Configserver der Server vorgewählt, den der Launcher übergeben hat (Hostname oder Kurzname). Kennt oPBWeb diesen Server nicht, erscheint ein Hinweis und vorbelegt ist der zuletzt gewählte; dann wählst du den passenden Server aus. Danach fragt der Dialog je nach Lage:
| Lage | Auswahl |
|---|
| Das Paket gibt es in oPBWeb noch nicht | Importieren oder Abbrechen |
| Das Paket gibt es, die Version noch nicht | Neue Version anlegen oder Abbrechen |
| Die Version gibt es schon | Als … anlegen (nächste freie Paketversion, zum Beispiel 1.0-3 statt 1.0-2), Entwurf überschreiben (nur wenn die vorhandene Version ein Entwurf ist) oder Abbrechen |
| Das Paket ist archiviert | nur Abbrechen; stell das Paket erst wieder her |
Nach dem Import öffnet sich die neue Version im Editor.
Die Modi Bauen und Bauen + Installieren des opsi-setup-detectors brauchen den Launcher nicht: Ab opsi 4.2.0.311 baut der opsi-setup-detector dann direkt über den opsi-Service. Ruft er den Launcher trotzdem zum Bauen auf, meldet der Launcher einen Fehler, denn oPBWeb baut nicht über die Kommandozeile.
In diesen Modi erfährt oPBWeb nichts vom neuen Paket. Importiere es danach über Workbench … oder im Dateimanager der Depots mit In oPBWeb importieren. Der regelmäßige Workbench-Scan des Workers importiert nicht, er merkt sich nur, welche Projektordner es gibt.
Rollen: Packager, Releaser, Administrator
Ein Meta-Paket installiert eine Reihe anderer Produkte. Es enthält selbst kein Programm, sondern nur Abhängigkeiten: Jedes gewählte Produkt wird zur Abhängigkeit „setup, installiert, vorher“. Das Script des Meta-Pakets tut nichts.
Klick auf Meta-Paket …. Der Dialog „Neues Meta-Paket“ öffnet sich.

Füll links die Felder aus:
- Product-ID: vorbelegt mit dem Präfix aus den Einstellungen (Standard
meta-). Es gelten dieselben Regeln wie bei einem neuen Paket. - Name, Beschreibung: optional.
- Produktversion, Paketversion: vorbelegt aus den Einstellungen.
Wähl rechts die Produkte aus. Mit „Produkte filtern …“ grenzt du die Liste ein. Zur Auswahl stehen alle Pakete in oPBWeb und alle Produkte, die auf den Depots gefunden wurden; Produkte, die es nur auf einem Depot gibt, sind mit „nur im Depot“ markiert.
Bring die Produkte unter Reihenfolge mit ↑ und ↓ in die gewünschte Installationsreihenfolge. Mit × entfernst du ein Produkt aus der Auswahl.
Klick auf Anlegen. Die Schaltfläche ist aktiv, sobald die Product-ID gültig ist und mindestens ein Produkt gewählt ist.
oPBWeb öffnet das neue Meta-Paket im Editor. Es bekommt die Priorität und den Namen des Setup-Scripts aus den Einstellungen (Standard: Priorität −100, Script dummy.opsiscript) und kein uninstall-Script. Ein Meta-Paket kann sich nicht selbst enthalten; maximal sind 200 Produkte möglich.
Version löschen
Rollen: Packager, Releaser, Administrator
Eine einzelne Version löschst du im Paket-Editor:
- Öffne die Version im Paket-Editor
und wähl den Abschnitt Produkt.
- Klick unten auf Diese Version löschen.
- Bestätige die Rückfrage „Version … endgültig löschen?“.
Das Löschen ist auch bei freigegebenen Versionen möglich und lässt sich nicht rückgängig machen. Ist die Version auf einem Produktions-Depot installiert, darf sie nur ein Releaser löschen (siehe Stufenregel
). Die gebaute .opsi-Datei der Version wird mit gelöscht. Ist es die letzte Version, verschwindet das ganze Paket aus der Liste. Danach öffnet oPBWeb eine andere Version des Pakets oder die Paketliste.
Achtung
Das Löschen in oPBWeb entfernt nichts von den Depots. Ein dort installiertes Produkt entfernst du vorher mit Deinstallieren …, siehe Bauen und verteilen
.
Paket archivieren
Rollen: Packager, Releaser, Administrator
Ein Paket, das du nicht mehr brauchst, aber behalten willst, archivierst du:
- Wähl das Paket in der Paketliste aus.
- Klick in den Details unter Paket auf Archivieren.
- Bestätige die Rückfrage „… archivieren? Das Paket verschwindet aus der Liste und wird schreibgeschützt, die gebauten .opsi-Dateien werden gelöscht.“
Ein archiviertes Paket
- erscheint nur noch unter dem Filter Archiv und nicht in der Suche,
- ist schreibgeschützt: Du kannst es im Editor ansehen, aber nicht bearbeiten, bauen, keine neue Version anlegen und keine Version löschen; auch ein Import in das Paket wird abgelehnt,
- hat keine Build-Ergebnisse mehr und lässt sich deshalb nicht installieren.
Laufen für das Paket noch Jobs oder warten welche, lehnt oPBWeb das Archivieren ab. Auf den Depots installierte Produkte bleiben erhalten; du kannst sie in den Details weiterhin mit Deinstallieren … entfernen.
Zum Zurückholen wählst du das Paket unter Archiv aus und klickst auf Wiederherstellen. Die Versionen behalten ihren Status. Vor dem nächsten Installieren musst du das Paket neu bauen.
Paket löschen
Rollen: Packager, Releaser, Administrator
Ein ganzes Paket mit allen Versionen löschst du in der Paketliste, auch wenn es archiviert ist:
- Wähl das Paket aus.
- Klick in den Details unter Paket auf Paket löschen ….
- Gib zur Bestätigung die Product-ID ein und klick auf Endgültig löschen. Die Schaltfläche ist erst aktiv, wenn die Eingabe genau stimmt.
Gelöscht werden alle Versionen, ihre Dateien und Build-Ergebnisse. Das lässt sich nicht rückgängig machen. Ist irgendeine Version des Produkts auf einem Produktions-Depot installiert, darf nur ein Releaser das Paket löschen.
Achtung
Auch hier bleibt auf den Depots alles erhalten. Ein dort installiertes Produkt entfernst du vorher mit Deinstallieren ….
Paket aus Installer erzeugen
Mit dem Assistenten „Aus Installer …“ einen Installer analysieren und daraus ein fertiges opsi-Produkt erzeugen, wie mit dem opsi-setup-detector.
Rollen: Packager, Releaser, Administrator
Überblick
Der Assistent Aus Installer … in der Paketliste macht in oPBWeb, was sonst der opsi-setup-detector auf deinem Rechner erledigt: Er analysiert einen Installer, schlägt Product-ID, Version, Installations- und Deinstallationsbefehl vor und erzeugt aus den Script-Vorlagen des opsi-setup-detectors ein vollständiges Paket. Das Paket landet als Entwurf in oPBWeb, der Installer liegt schon in CLIENT_DATA/files1.
Du brauchst dafür weder den opsi-setup-detector noch eine Workbench-Freigabe auf deinem Rechner. Wer lieber mit dem opsi-setup-detector arbeitet, nutzt weiter die Übergabe über den Launcher
; beide Wege führen zum selben Ergebnis, einem Entwurf in oPBWeb.
Die Analyse und das Erzeugen laufen als Jobs im Worker. Den Fortschritt siehst du im Assistenten und unter Jobs
(„Installer analysieren: …“, „Paket aus Installer anlegen: …“).
Der Assistent im Überblick
Klick in der Werkzeugleiste der Paketliste auf Aus Installer …. Der Dialog „Neues Paket aus Installer“ führt dich durch vier Schritte:
| Schritt | Was du tust |
|---|
| Quelle | Art des Pakets, Ziel-Betriebssystem und Vorlagenkanal wählen, Installer hochladen oder in der Workbench angeben |
| Analyse | Ergebnis der Analyse prüfen und korrigieren |
| Produkt | Product-ID, Versionen, Beschreibung, Optionen, Properties, Abhängigkeiten, Changelog und Produktbild festlegen |
| Erzeugen | Zusammenfassung prüfen, Paket anlegen, im Editor öffnen |
Mit Zurück gehst du einen Schritt zurück, ein Klick auf einen erledigten Schritt oben springt direkt dorthin. Bei den Vorlagen-Arten ohne Installer entfällt der Schritt Analyse.
Beim ersten Öffnen des Assistenten erscheint vorher einmalig der Hinweis „Hinweis zum Funktionsumfang“: Der Assistent kann weniger als der originale opsi-setup-detector, die Unterschiede stehen unter Einschränkungen
. Derselbe Hinweis erscheint auch vor dem ersten Installer analysieren
im Paket-Editor, falls du ihn noch nicht bestätigt hast. Nach Verstanden merkt sich oPBWeb das an deinem Benutzerkonto; der Hinweis kommt also auch in einem anderen Browser nicht wieder. Unter Mein Konto kannst du ihn mit Wieder anzeigen
wieder einschalten.
Schritt 1: Quelle
- Wähl unter Art des Pakets, was entstehen soll (Tabelle unten). Unter dem Feld steht jeweils ein kurzer Hinweis zur gewählten Art.
- Wähl das Ziel-Betriebssystem (Windows, Linux oder macOS). Das Feld ist nur bei den Arten aktiv, die für ein einzelnes Betriebssystem gelten.
- Wähl den Vorlagenkanal. Vorbelegt ist der Kanal aus den Einstellungen
:
- Training (ausführlich kommentiert): Scripte mit vielen Erklärungen, gut zum Lernen.
- Standard: die Vorlagen, die der opsi-setup-detector normalerweise verwendet.
- Strukturiert: Scripte, die stärker in einzelne Dateien aufgeteilt sind.
- Eigene (custom): eure eigenen Vorlagen. Was dort fehlt, nimmt der Generator aus Standard, siehe Vorlagen
.
- Gib für jeden Installer an, woher er kommt:
- Hochladen: Zieh die Datei in das Feld „Installer hierher ziehen oder auswählen“ oder klick auf Datei auswählen ….
- Aus der Workbench: Gib unter Pfad relativ zur Workbench den Pfad ab dem Projektordner an, zum Beispiel
firefox/CLIENT_DATA/files1/setup.exe. Sind mehrere Configserver eingerichtet, wählst du darüber den Configserver. Mit Ganzen Ordner übernehmen kopiert oPBWeb beim Erzeugen alle Dateien aus dem Ordner des Installers (mit Unterordnern) nach files1 bzw. files2, files3, etwa für Installer mit Zusatzdateien.
- Bei einer
.msi-Datei kannst du eine MST-Datei (optional) angeben: beim Hochladen in einem zweiten Feld, bei der Workbench nur mit ihrem Namen (sie muss im selben Ordner liegen). Der Installationsbefehl bekommt dann TRANSFORMS=…. - Stell bei Bedarf die beiden Analyseoptionen um (vorbelegt aus den Einstellungen):
- Silent- statt Unattended-Parameter verwenden: Der Installer läuft ganz ohne Fenster statt mit Fortschrittsanzeige.
- MSI-Wrapper über msiexec deinstallieren, wenn die MSI-Daten bekannt sind: Bei Installern mit eingebettetem MSI deinstalliert das Paket über
msiexec /x mit dem ProductCode.
- Klick auf Analysieren. Bei den Vorlagen-Arten heißt die Schaltfläche Weiter.
Fehlt etwas, nennt der Dialog es unter den Feldern, zum Beispiel „Installer: Datei oder Workbench-Pfad fehlt.“
Arten von Paketen
| Art des Pakets | Installer | Ergebnis |
|---|
| Einzelner Installer | einer | Paket für ein Betriebssystem; das Ziel-Betriebssystem richtet sich nach dem Installer |
| 32- und 64-Bit-Installer | zwei (Windows) | Paket mit beiden Installern und der Property install_architecture (32 only, 64 only, system specific, both) |
| Mehrere Betriebssysteme | je einer für Windows, Linux, macOS, jeder optional, mindestens einer | Paket mit Scripten für alle drei Betriebssysteme; ohne Installer bekommt ein Betriebssystem nur die Vorlagenscripte |
| Nur Vorlage | keiner | nur die Scripte aus den Vorlagen; die Installationsbefehle trägst du danach im Editor ein |
| Vorlage für mehrere Betriebssysteme | keiner | Scripte für Windows, Linux und macOS ohne Installer |
| Installation im Benutzerkontext | einer (Windows) | der Installer läuft in einer Sitzung des Benutzers opsisetupuser, die Scripte liegen unter localsetup |
| Vorlage für Installation im Benutzerkontext | keiner | Scripte für eine Installation im Benutzerkontext ohne Installer |
| winget | keiner | Produkt, das der Client über winget installiert; statt einer Datei gibst du die winget-ID (zum Beispiel Mozilla.Firefox) und die Quelle an (Standard winget) |
Schritt 2: Analyse
oPBWeb lädt die Installer hoch und startet für jeden einen Analyse-Job. Neben dem Dateinamen zeigt ein Abzeichen den Stand: „lädt hoch“, „analysiert“ mit Prozentangabe, „analysiert ✓“ oder „fehlgeschlagen“. Unter Protokoll steht das Job-Protokoll. Weiter wird erst aktiv, wenn alle Analysen fertig sind.
Für jeden Installer zeigt der Dialog:
- Typ: der erkannte Installertyp, zum Beispiel „Inno Setup“ oder „Nullsoft Install System“. Haben die Regeln mehrere Typen gefunden, steht darunter „Ebenfalls erkannt: …“. Erkennt oPBWeb den Typ falsch oder gar nicht, wählst du ihn hier aus; das startet eine neue Analyse mit diesem Typ („Typ von Hand gewählt“). automatisch erkennen schaltet zurück.
- Hinweis des Detectors: die Erklärung des opsi-setup-detectors zu diesem Installertyp, oft mit Link zur Dokumentation des Herstellers.
- Fundstellen: die Erkennungsmuster, die in der Datei gefunden wurden.
- Ergebnis von Detect-It-Easy: nur, wenn Detect-It-Easy im Worker installiert ist (siehe Grenzen
).
- Hinweise der Analyse, zum Beispiel „Installertyp nicht erkannt. Bitte den Typ von Hand wählen.“
- Die Felder, die der Generator verwendet: Product-ID, Produktname, Produktversion, Installationsverzeichnis, Architektur, Hauptprogramm (für das Desktop-Icon), Installationsbefehl, Deinstallationsbefehl, Deinstallationsprogramm, Über msiexec deinstallieren, Platzbedarf, bei MSI MSI-ProductCode und MSI-UpgradeCode sowie Prüfung „installiert?“ (opsi-script-Zeilen, die prüfen, ob die Software schon installiert ist).
Alle Felder kannst du ändern; der Generator übernimmt deine Werte. Mit Erneut analysieren startest du die Analyse noch einmal, etwa nachdem du Silent- statt Unattended-Parameter verwenden umgestellt hast.
Was die Analyse je Installertyp findet
Den Typ erkennt oPBWeb wie der opsi-setup-detector an Textmustern in der Datei. Grundlage ist die Installertabelle des opsi-setup-detectors mit rund 30 Typen; aus ihr kommen auch die Silent- und Unattended-Parameter, das Deinstallationsprogramm und die Funktion, die Exit-Codes bewertet. Danach liest oPBWeb je nach Typ weitere Angaben aus:
| Installer | Was zusätzlich gelesen wird |
|---|
Windows-Programme allgemein (.exe) | Versionsressource: Produktname und Dateiversion, Architektur des Installers |
MSI (.msi) | ProductName, ProductVersion, ProductCode, UpgradeCode und das Installationsverzeichnis aus der MSI-Datenbank; Deinstallation über msiexec /x |
| Inno Setup | aus dem Setup-Header: Name und Version der Anwendung, Standard-Installationsverzeichnis, 32/64 Bit, Ort des Deinstallationsprogramms |
| InstallShield mit MSI, Advanced Installer, WiX-Bundles | das eingebettete MSI, sofern 7-Zip es auspacken kann; dann wie bei MSI |
| InstallAware | Name des Deinstallationsprogramms aus den Fundstellen |
| MSIX / APPX (auch Bundles) | Name, Version, Architektur und Beschreibung aus dem Manifest; Deinstallation und Prüfung über PowerShell. Die Option Vor Installation deinstallieren ist vorausgewählt („Für MSIX/APPX empfiehlt der Detector …“) |
Debian-Pakete (.deb) | Paketname, Version, Beschreibung, Hersteller, Lizenz, Architektur, Homepage, Platzbedarf |
RPM-Pakete (.rpm) | dieselben Angaben aus dem RPM-Header |
macOS (.dmg, .pkg, .app, .zip mit Ziel macOS) | Name und Version aus dem Dateinamen; ein ZIP muss eine .app, .dmg oder .pkg enthalten |
| andere erkannte Typen (NSIS, InstallShield klassisch, Wise, Bitrock …) | Parameter und Deinstallationsprogramm aus der Installertabelle, Name und Version aus der Versionsressource oder dem Dateinamen |
Grenzen der Analyse
- Inno Setup: Den Setup-Header liest das Werkzeug innoextract. Neue Inno-Versionen, die innoextract noch nicht kennt, liefern „Der Inno-Setup-Header konnte nicht gelesen werden (innoextract).“ Installationsverzeichnis und Deinstallationsprogramm sind dann Standardannahmen; prüf sie.
- MSI in Wrapper-Installern: Der opsi-setup-detector führt solche Installer unter Windows aus, um das MSI auszupacken. oPBWeb führt keine Installer aus, sondern versucht es mit 7-Zip. Findet 7-Zip kein MSI („7-Zip hat kein eingebettetes MSI gefunden …“), fehlen die MSI-Angaben, und das Paket deinstalliert über das Deinstallationsprogramm des Installers. Sind mehrere MSI-Dateien drin, wertet oPBWeb die erste aus und nennt alle.
- Detect-It-Easy: Der opsi-setup-detector holt sich bei unbekannten Dateien eine zweite Meinung von Detect-It-Easy. Im Image von oPBWeb ist es nicht enthalten; ohne Detect-It-Easy bleibt es bei der Erkennung über die Muster. Wie man es nachrüstet, steht in der Konfiguration
.
- Nur unter Windows: Was der opsi-setup-detector durch Ausführen des Installers auf einem Windows-Rechner herausfindet, kann oPBWeb nicht ermitteln. Prüf deshalb vor allem bei unbekannten Typen Installationsverzeichnis, Deinstallationsprogramm und die Prüfung „installiert?“.
Hinweis
Die Analyse ist ein Vorschlag. Teste jedes erzeugte Paket auf einem Test-Client, bevor du es auf Produktions-Depots bringst.
Schritt 3: Produkt
Product-ID, Name, Produktversion und Beschreibung sind aus der Analyse vorbelegt, Paketversion, Priorität, Format control und Changelog aus den Einstellungen für neue Pakete
. Für die Felder gelten dieselben Regeln wie bei Neues Paket. Unter den Feldern zeigt oPBWeb, ob es die Product-ID oder die Version schon gibt, zum Beispiel „firefox gibt es in oPBWeb bereits; die Version wird neu angelegt.“
Optionen
Die Optionen schalten zusätzliche Bausteine der Vorlagen ein:
| Option | Wirkung |
|---|
| Lizenzpflichtig | setzt im control die Lizenzpflicht |
| Desktop-Icon (Property desktopicon) | Property desktopicon und Scriptteile, die eine Verknüpfung auf das Hauptprogramm anlegen bzw. entfernen |
| Lizenzschlüssel-Property (SecretLicense_or_Pool) | Property secretlicense_or_pool für einen Lizenzschlüssel oder einen opsi-Lizenzpool, dazu die Scriptteile zum Holen und Freigeben der Lizenz |
| Aus lokalem Verzeichnis installieren | Property install_from_local_tmpdir: Der Client kopiert die Installationsdateien erst lokal und installiert von dort |
| Custom-Verzeichnis | Ordner CLIENT_DATA/custom/ für eigene Dateien, die das Script mitkopiert |
| Profilanpassung | Ordner CLIENT_DATA/profile_files/ und Scriptteile, die Benutzerprofile anpassen |
| Vor Installation deinstallieren | Property uninstall_before_install: entfernt eine vorhandene Installation vor dem Setup |
Desktop-Icon und Lizenzschlüssel-Property sind vorausgewählt, wenn ein Administrator das in den Einstellungen so festgelegt hat.
Properties und Standard-Properties
Unter Properties stehen die vorbelegten Properties aus den Einstellungen. Du kannst sie ändern, löschen und mit Property hinzufügen ergänzen (Name, Typ, Standardwert, Mögliche Werte kommagetrennt, Beschreibung, Frei). Jeder Name darf nur einmal vorkommen.
Die Properties, die zu den gewählten Optionen und zur Art des Pakets gehören, ergänzt der Generator selbst. Du musst sie nicht anlegen:
| Property | Wann |
|---|
desktopicon | Option Desktop-Icon |
secretlicense_or_pool | Option Lizenzschlüssel-Property |
install_from_local_tmpdir | Option Aus lokalem Verzeichnis installieren |
install_architecture | Art 32- und 64-Bit-Installer |
uninstall_before_install | Option Vor Installation deinstallieren und Installation im Benutzerkontext |
copy_files_locally, debug, execution_method, install_at_safe_mode_boot | Installation im Benutzerkontext |
Abhängigkeiten, Changelog und Produktbild
- Abhängigkeiten: Mit Abhängigkeit hinzufügen trägst du je Zeile unter Benötigtes Produkt das Produkt ein, unter Benötigt eine Aktion oder einen Zustand dieses Produkts und unter Reihenfolge
before, after oder „egal“. Die Abhängigkeiten gelten für die Aktion setup; ändern kannst du sie später im Paket-Editor
. - Changelog-Eintrag: Text des ersten Changelog-Eintrags. Leer lassen ergibt den Standardtext des Generators.
- Produktbild (PNG): Mit PNG auswählen … lädst du ein eigenes Bild hoch. Ohne eigenes Bild bekommt das Paket das Standardbild des Betriebssystems aus den Vorlagen.
Schritt 4: Erzeugen
Der letzte Schritt fasst Art, Vorlagenkanal, Product-ID, Version, Installer und die Zahl der Properties zusammen und prüft, ob es das Paket schon gibt. Je nach Lage bietet er an:
| Lage | Auswahl |
|---|
| Das Paket gibt es in oPBWeb noch nicht | Paket anlegen |
| Das Paket gibt es, die Version noch nicht | Neue Version anlegen |
| Die Version gibt es schon | Als … anlegen (nächste freie Paketversion, zum Beispiel 1.0-3 statt 1.0-2) und, wenn die vorhandene Version ein Entwurf ist, Entwurf überschreiben |
| Die Version gibt es schon, sie ist freigegeben und die Paketversion lässt sich nicht hochzählen | keine; ändere die Version im Schritt Produkt |
| Das Paket ist archiviert | keine; stell das Paket erst wieder her, siehe Paket archivieren |
Nach dem Klick zeigt der Dialog den Fortschritt („Erzeuge das Paket … 40 %“) und das Job-Protokoll. Der Job erzeugt die Produktdateien aus den Vorlagen, kopiert die Installer nach CLIENT_DATA/files1 (bzw. files2, files3) und legt alles als neue Entwurfsversion an. Danach meldet er „firefox 128.0-1 ist als Entwurf angelegt.“ Klick auf Im Editor öffnen, um das Paket zu prüfen, zu bauen und zu testen.
In den Paketdetails steht als Herkunft „opsi-setup-detector“.
Warnungen des Jobs stehen unter der Erfolgsmeldung:
- „Vorlage … fehlt, der Baustein wird ausgelassen“: Im gewählten Kanal, in Standard und in
default/generic gibt es die Datei nicht, etwa weil ein Administrator sie gelöscht hat. - „Nicht ersetzte Platzhalter in den erzeugten Dateien: …“: Eine Vorlage enthält einen Platzhalter, für den der Generator keinen Wert hat. Such ihn im Editor und ersetz ihn von Hand.
Installer im Paket analysieren
Liegt ein Installer schon in einem Paket, analysierst du ihn im Paket-Editor über das Kontextmenü des Dateibaums mit Installer analysieren, siehe Dateien des Pakets
. Das Ergebnis ist dort nur eine Anzeige, es ändert das Paket nicht. Hast du den „Hinweis zum Funktionsumfang“ noch nicht bestätigt, erscheint er vor der ersten Analyse; die Einschränkungen
gelten auch hier.
Einschränkungen gegenüber dem opsi-setup-detector
Der Assistent übernimmt Analyse und Paketerzeugung des opsi-setup-detectors, läuft aber im Worker-Container unter Linux und nicht auf einem Windows-Rechner. Daraus und aus dem Umfang der Portierung ergeben sich diese Unterschiede:
| Bereich | opsi-setup-detector | oPBWeb |
|---|
| MSI in Wrapper-Installern | packt das MSI unter Windows durch Ausführen des Installers aus: InstallShield mit MSI (extractMSI.cmd), Advanced Installer (/extract), WiX-Bundles (dark.exe) | führt keine Installer aus und versucht es nur mit 7-Zip. Klappt das nicht, bleiben MSI-ProductCode, Produktname und Installationsverzeichnis unbekannt („7-Zip hat kein eingebettetes MSI gefunden …“). Mit echten InstallShield-, Advanced-Installer- und WiX-Installern ist das noch nicht getestet. |
| Detect-It-Easy | holt sich bei unbekannten Dateien eine zweite Meinung | nicht im Image, nur nachrüstbar (DIEC_PATH, siehe Konfiguration
). Ohne Detect-It-Easy bleiben Installer, die nur Detect-It-Easy erkennt (etwa Squirrel oder Microsoft-.NET-Installer), „unbekannt“, und du wählst den Typ von Hand. |
| Inno Setup | liest das Setup mit innounp bzw. innounp-2 | liest den Setup-Header mit innoextract (Fork von crazy-max, kennt Inno Setup bis 7.1). Für neuere Inno-Versionen gelten Standardannahmen („Der Inno-Setup-Header konnte nicht gelesen werden …“). |
| Quelle des Installers | lokale Datei oder lokaler Ordner | Upload oder Datei in einem Projektordner der Workbench. Große Installer musst du erst hochladen. Ganzen Ordner übernehmen gibt es nur bei der Workbench. Ein .app-Bundle ist ein Ordner und lässt sich nicht hochladen; pack es als ZIP. |
| Projektdatei | speichert opsi-project.osd und öffnet sie wieder, kann ein Produkt aus einer vorhandenen control-Datei vorbelegen | keine Projektdatei, kein Vorbelegen aus einer control-Datei. Was bleibt, ist das erzeugte Paket; Änderungen machst du danach im Paket-Editor
. |
| Kommandozeile | Batch-Betrieb mit --filename, --nogui, --targetOS, --productID, --mode, --template-channel | nur der Assistent in der Oberfläche |
| Metadaten für Hintergrundinstallation | Reiter „Product Configuration 3“: Prozesse und zu prüfende Verzeichnisse bearbeitbar | opsi-meta-data.toml nur aus der Analyse (Einstellung Metadaten schreiben (CLIENT_DATA/opsi-meta-data.toml)): Prozessliste leer, geprüft wird nur das Installationsverzeichnis. Ob der opsi-Dienst die Datei so akzeptiert, ist ungeprüft. |
| Bauen und Installieren | Modus „build and install“ in einem Durchgang | Der Assistent endet mit einem Entwurf. Bauen und Installieren
erledigst du danach im Editor. |
| Arten winget und Installation im Benutzerkontext | winget-Vorlagen werden referenziert, fehlen aber im Repository des Detectors | eigene winget-Vorlagen von oPBWeb. Weder winget- noch with-user-Pakete aus oPBWeb sind bisher auf einem Windows-Client getestet. |
| Vorlagenkanal Eigene (custom) | keine Vorlagen im Repository | ebenfalls leer; füll ihn in der Ansicht Vorlagen
oder per ZIP-Import
. |
Wann der opsi-setup-detector die bessere Wahl ist
Nimm den opsi-setup-detector unter Windows, wenn
- ein Wrapper-Installer sein MSI nur beim Ausführen herausgibt und du die MSI-Angaben brauchst,
- der Installer exotisch ist und nur Detect-It-Easy ihn erkennt (und es in deinem oPBWeb nicht nachgerüstet ist),
- ein Inno-Setup-Installer so neu ist, dass oPBWeb seinen Header nicht lesen kann,
- die Dateien lokal liegen und du sie nicht erst hochladen oder in die Workbench legen willst, oder ein
.app-Bundle als Ordner vorliegt, - du mit Projektdateien oder im Batch-Betrieb arbeitest,
- du ein winget-Paket oder ein Paket mit Installation im Benutzerkontext brauchst, solange diese Arten in oPBWeb nicht auf einem Client geprüft sind.
Das Ergebnis des opsi-setup-detectors landet trotzdem in oPBWeb: Über den Launcher übernimmt oPBWeb den erzeugten Projektordner aus der Workbench, siehe Übergabe vom opsi-setup-detector
.
Paket-Editor
control-Daten eines Pakets bearbeiten: Produkt, Abhängigkeiten, Properties, Changelog und Quelltext
Rollen: Leser, Packager, Releaser, Administrator
Überblick
Im Paket-Editor bearbeitest du eine Paketversion: die control-Daten (Produktangaben, Scripte, Abhängigkeiten, Properties), den Changelog und die Dateien des Pakets. Dieses Kapitel beschreibt den Reiter control. Wie du mit Dateien und Scripten arbeitest, steht in Dateien des Pakets
und Scripteditor
.
Bearbeiten kannst du nur Entwürfe, und nur mit mindestens der Rolle Packager. Als Leser und bei freigegebenen Versionen sind alle Felder gesperrt; ansehen kannst du alles.
Editor öffnen
Du öffnest den Editor auf einem dieser Wege:
- Doppelklick auf ein Paket in der Paketliste, oder Im Editor öffnen in den Paketdetails.
- Paket-Editor in der Bereichsleiste öffnet das zuletzt bearbeitete Paket.
- Über die Suche (
Strg K) ein Paket auswählen.
Aufbau
Der Editor ist in drei Bereiche geteilt:
- Links: Oben die Liste aller Pakete (Filtern …, orangefarbener Punkt = Entwurf, blauer Punkt = freigegeben). Darunter die Reiter Dateien (Dateibaum) und Struktur (Include-Baum der Scripte).
- Mitte: Reiter control für die Paketdaten und je ein Reiter pro geöffneter Datei. Ein ● zeigt ungespeicherte Änderungen.
- Unten: Das Panel JOBS mit den letzten 30 Jobs dieses Pakets und dem Live-Protokoll des ausgewählten Jobs. Mit × schließt du es, mit „Jobs ▴“ öffnest du es wieder.
Werkzeugleiste des control-Reiters
| Element | Funktion |
|---|
| Bearbeiten | Quelltext | Wechselt zwischen Formular und erzeugtem Quelltext. |
| Produkt | Abhängigkeiten | Properties | Changelog | Abschnitte des Formulars. Bei Abhängigkeiten und Properties steht die Anzahl dahinter, ein ● markiert ungespeicherte Änderungen. |
| Versionsauswahl | Alle Versionen des Pakets mit Status (zum Beispiel „1.0-2 · Entwurf“). Eine Auswahl wechselt zu dieser Version. |
| „gebaut“ / „seit dem Bauen geändert“ | Zustand des letzten Builds (nur bei Entwürfen mit Build). |
| Bauen | Erzeugt die .opsi-Datei. Deaktiviert, solange es ungespeicherte Änderungen gibt. |
| Speichern | Speichert alle geänderten Abschnitte und geänderten offenen Dateien. Nur aktiv, wenn es Änderungen gibt. |
| .opsi herunterladen | Lädt den letzten Build herunter (nur, wenn einer existiert). |
| Installieren … | Verteilt den Build auf Depots. |
| ⋯ (Weitere Aktionen) | Neue Version, In Workbench exportieren …, Mit Workbench abgleichen …, .opsi herunterladen, .md5 herunterladen, Deinstallieren … |
Bauen, Speichern und Installieren … siehst du nur mit mindestens der Rolle Packager. Bauen, Installieren und Exportieren beschreibt Bauen und verteilen
. In Workbench exportieren … fragt dabei unter Configserver, in welche Workbench geschrieben wird. Den Abgleich mit der Workbench beschreibt Mit Workbench abgleichen
.
Speichern und ungespeicherte Änderungen
Änderungen im Formular landen erst mit Speichern auf dem Server. oPBWeb zeigt nach dem Speichern kurz „Gespeichert“.
Willst du den Editor oder die Version mit ungespeicherten Änderungen verlassen, fragt oPBWeb nach: „Es gibt ungespeicherte Änderungen. Trotzdem verlassen?“. Auch der Browser warnt beim Schließen des Tabs.
Abschnitt Produkt

Produkt
| Feld | Beschreibung |
|---|
| Product-ID | Nur lesbar. Die Product-ID lässt sich nach dem Anlegen nicht mehr ändern. |
| Name | Anzeigename des Produkts |
| Typ | localboot oder netboot |
| Priorität | Ganzzahl von −100 bis 100. Produkte mit höherer Priorität werden auf dem Client früher ausgeführt. |
| Produktversion, Paketversion | Nur lesbar. Eine andere Versionsnummer bekommst du über Neue Version. |
| Lizenzpflicht | „nein“, „ja“ oder „nicht gesetzt“ |
| Produktklassen | Optional, mehrere durch Komma getrennt |
| Beschreibung | Beschreibung des Produkts |
| Hinweis (Advice) | Hinweistext für Administratoren in opsi |
Scripte je Aktion
Für jede Aktion (setup, uninstall, update, always, once, custom, userLogin) wählst du das Script aus. Zur Auswahl stehen „—“ (kein Script) und alle Script-Dateien unter CLIENT_DATA/ mit den Endungen .opsiscript, .ins und .opsiinc.
Verweist die control-Datei auf ein Script, das es nicht gibt, steht dahinter „(Datei fehlt)“. So ein Paket lässt sich nicht bauen, bis du die Datei anlegst oder die Auswahl änderst.
Paket
| Feld | Beschreibung |
|---|
| Format control | „INI (Altformat)“ erzeugt OPSI/control, „TOML“ erzeugt OPSI/control.toml. |
| Changelog | Wo der Changelog liegt: „Changelog eingebettet“ (als Abschnitt [Changelog] in der INI-control-Datei), „changelog.txt“ oder „changelog.md“ im Ordner OPSI/. Bei TOML ist „Changelog eingebettet“ nicht möglich. |
| Paketabhängigkeiten | Pakete, die auf dem Depot vorhanden sein müssen, als Liste mit Komma, optional mit Bedingung: zum Beispiel opsi-script (>=4.12), mshotfix. Ohne Bedingung gilt >=. |
Änderst du das Format, erscheint der Hinweis „Beim Speichern wird das Format des Pakets umgestellt. Die Quelltext-Ansicht zeigt das Ergebnis vorher.“ Steht beim Wechsel auf TOML der Changelog noch auf „eingebettet“, legt oPBWeb ihn beim Speichern als changelog.txt ab.
Diese Version löschen
Unter dem Abschnitt Produkt findest du als Packager die Schaltfläche Diese Version löschen. Sie funktioniert auch bei freigegebenen Versionen. Details stehen in Pakete
.
Abschnitt Abhängigkeiten
Hier legst du fest, welche anderen Produkte vor oder nach diesem Produkt installiert sein müssen.

- Klick auf + Abhängigkeit. Eine neue Zeile mit „setup / setup / before“ erscheint.
- Füll die Spalten aus:
- Für Aktion: Bei welcher Aktion dieses Produkts die Abhängigkeit gilt (
setup, uninstall, update, always, once, custom, userLogin). - Benötigtes Produkt: Product-ID des anderen Produkts. Bekannte Product-IDs werden beim Tippen vorgeschlagen.
- Benötigte Aktion: Aktion, die für das andere Produkt gesetzt wird, oder „—“.
- Benötigter Status:
installed, not_installed, unknown oder „—“. - Reihenfolge:
before (vorher), after (nachher) oder „—“. - Version: optional, die benötigte Version.
- Klick auf Speichern.
Pro Abhängigkeit muss entweder eine benötigte Aktion oder ein benötigter Status angegeben sein. Mit × am Zeilenende entfernst du eine Abhängigkeit.
Abschnitt Properties
Properties sind Einstellungen, die opsi-Administratoren pro Client oder Depot setzen können und die deine Scripte auslesen.

Property anlegen oder bearbeiten
- Klick auf + Property. oPBWeb legt ein Property
property_<n> vom Typ unicode an und klappt den Editor auf. Ein Klick auf ▸ klappt ein vorhandenes Property auf. - Füll die Felder aus:
- Name: Buchstaben, Ziffern,
_, . und -; jeder Name darf in der Version nur einmal vorkommen. - Typ:
unicode (Text) oder bool (true/false). - Bei unicode: Mehrfachwerte (mehrere Werte gleichzeitig wählbar) und editierbar (eigene Werte erlaubt).
- Beschreibung.
- Bei unicode: Werte unter „Werte · Klick markiert/entfernt Default“. Tipp einen Wert in „Wert hinzufügen …“ und drück
Enter. Ein Klick auf einen Wert markiert ihn als Default oder hebt das auf, × entfernt ihn. - Bei bool: Default
true oder false.
- Klick auf Speichern.
Scripte prüfen
Scripte prüfen durchsucht alle Scripte des Pakets nach GetProductProperty, GetConfidentialProductProperty und GetProductPropertyList und vergleicht die gelesenen Properties mit den definierten:
- „… im Script gelesene Properties fehlen im control:“ listet Properties, die ein Script liest, die aber nicht definiert sind, mit Fundstelle (Datei und Zeile) und dem im Script verwendeten Default. Mit Anlegen übernimmst du ein Property direkt.
- „Von keinem Script gelesen: …“ nennt definierte Properties, die kein Script verwendet.
- „Alle … gelesenen Properties sind definiert.“ bedeutet: alles passt.
Geprüft werden nur die Scripte dieses Pakets, nicht die uib-Bibliotheken auf dem Client. Die Prüfung kannst du auch als Leser starten; Anlegen braucht einen Entwurf und die Rolle Packager.
Abschnitt Changelog
Ein Etikett neben der Überschrift nennt, wo der Changelog liegt (OPSI/changelog.md, OPSI/changelog.txt oder OPSI/control [Changelog]). Daneben schaltest du zwischen Einträge und Freitext um.

Einträge
Entspricht der Changelog der Standardform, öffnet oPBWeb ihn als Liste der Einträge. Standardform heißt:
- txt und eingebettet (Debian-Stil, wie im opsiPackageBuilder): je Eintrag die Kopfzeile
produkt (version) status; urgency=dringlichkeit, der Text und die Fußzeile -- Name <E-Mail> Datum. - md (Format des opsi-setup-detectors): optional ein Titel
# Changelog …, dann je Eintrag ## [version] - Datum, der Text und (Name <E-Mail>).
Ein Klick auf eine Zeile klappt den Eintrag auf. Dort änderst du Version, Status und Dringlichkeit (nur Debian-Stil), Text, Autor, E-Mail und Datum; Jetzt setzt das aktuelle Datum. Mit ↑ und ↓ verschiebst du einen Eintrag, × löscht ihn nach einer Rückfrage. Gespeichert wird mit Speichern in der Werkzeugleiste. Unveränderte Einträge schreibt oPBWeb zeichengenau zurück, eine Änderung betrifft also nur die Zeilen des geänderten Eintrags.
Freitext
Im Freitext bearbeitest du den Changelog direkt im Texteditor; speichern kannst du mit Speichern oder Strg S. Weicht der Text von der Standardform ab, steht darüber „Der Changelog entspricht nicht der Standardform. Bearbeiten ist nur als Freitext möglich.“ und Einträge ist gesperrt. Sobald der Text wieder der Standardform entspricht, kannst du zurückschalten.
Eintrag hinzufügen
- Klick auf + Eintrag für … (die aktuelle Version steht im Namen der Schaltfläche).
- Trag im Dialog „Neuer Changelog-Eintrag“ unter Änderungen (eine pro Zeile) deine Änderungen ein.
- Bei txt- und eingebettetem Changelog: Wähl Status (
testing, stable, unstable; Standard testing) und Dringlichkeit (low, medium, high, critical; Standard low). - Klick auf Hinzufügen.
Der Eintrag wird oben eingefügt, mit deinem Namen, deiner E-Mail-Adresse und dem aktuellen Datum. Hast du keine E-Mail-Adresse hinterlegt, verwendet oPBWeb benutzername@<Mail-Domain> aus den Einstellungen. In der Ansicht Einträge ist der neue Eintrag danach aufgeklappt und wird mit Speichern gespeichert; im Freitext speichert oPBWeb ihn sofort.
Mit Workbench abgleichen
Rollen: Packager, Releaser, Administrator
Manchmal ändert jemand ein Paket direkt in der Workbench eines Configservers, zum Beispiel ein Script, und baut es dort neu. Mit ⋯ › Mit Workbench abgleichen … holst du solche Änderungen in die Version in oPBWeb, damit sie nicht verloren gehen.

Der Abgleich geht nur in eine Richtung, von der Workbench nach oPBWeb, und bietet nur an, was auf der Workbench neuer ist. Später in oPBWeb geänderte Dateien überschreibt er nicht, Dateien, die auf der Workbench fehlen, löscht er nicht.
Öffne die Version im Editor und wähl ⋯ › Mit Workbench abgleichen …. Der Dialog „Abgleich mit der Workbench: firefox 128.0-1“ öffnet sich und vergleicht sofort.
Prüf oben die Vorgaben und klick nach einer Änderung auf Vergleichen:
- Configserver: der Server, dessen Workbench verglichen wird.
- Projektordner: vorbelegt mit dem Ordner, aus dem die Version importiert wurde, sonst mit der Product-ID. Liegt das Projekt in einem Gruppenordner, gib den Pfad an, zum Beispiel
develop/firefox. - Der Chip Nur Unterschiede (voreingestellt aktiv) blendet gleiche Dateien aus.
Prüf die Tabelle mit den Spalten Datei, Zustand, Workbench geändert und oPBWeb geändert (Zeitpunkt der letzten Änderung):
| Zustand | Bedeutung | Übernehmbar |
|---|
| „neu auf der Workbench“ | Die Datei gibt es nur auf der Workbench. | ja, vorausgewählt |
| „auf der Workbench neuer“ | Die Datei wurde auf der Workbench später geändert als in oPBWeb. | ja, vorausgewählt |
| „in oPBWeb neuer“ | Die Datei wurde in oPBWeb später geändert. | nein, wird nie überschrieben |
| „nur in oPBWeb“ | Die Datei fehlt auf der Workbench. | nein, wird nie gelöscht |
| „gleich“ | kein Unterschied | – |
Ein Klick auf eine Zeile mit ▸ zeigt die Unterschiede: rot ist der Stand in oPBWeb, grün der Stand auf der Workbench. Unten steht eine Zusammenfassung wie „Übernehmbar: 2 · gleich: 14“.
Entferne die Häkchen bei allem, was du nicht übernehmen willst, und klick auf Übernehmen (n).
Nach dem Übernehmen meldet oPBWeb „Änderungen aus der Workbench übernommen“, vergleicht erneut und lädt die Version im Editor neu. Verglichen werden nur die Ordner OPSI/, CLIENT_DATA/ und SERVER_DATA/; alte Sicherungen control-*.bak werden ignoriert. Vergleich und Übernahme laufen als Jobs („Abgleich mit Workbench (Server): …“, „Aus Workbench übernehmen (Server): …“).
control-Daten
control-Datei und Changelog-Datei erscheinen gemeinsam als eine Zeile „control-Daten (control, changelog.txt)“. oPBWeb vergleicht hier die Daten, nicht den Text: Eine andere Formatierung, etwa andere Leerzeichen, zählt nicht als Unterschied. Übernimmst du diese Zeile, ersetzt oPBWeb Produktdaten, Abhängigkeiten, Properties und Changelog der Version durch den Stand der Workbench.
Freigegebene Versionen
Übernehmen kannst du nur in einen Entwurf. Bei einer freigegebenen Version zeigt der Dialog die Unterschiede, meldet aber „Diese Version ist freigegeben. Zum Übernehmen erst eine neue Version anlegen und diese abgleichen.“ Leg dann mit Neue Version eine neue Version an und gleiche diese ab.
Quelltext-Ansicht
Quelltext zeigt die control-Datei und den Changelog so, wie sie beim Bauen erzeugt werden. Die Ansicht ist nur zum Lesen und steht allen Rollen zur Verfügung.

- Links findest du die GLIEDERUNG (die Abschnitte der Datei, ein Klick springt hin) und die DATEIEN (
OPSI/control bzw. OPSI/control.toml und gegebenenfalls den Changelog). - Mit INI | TOML wählst du das Format. Entspricht es dem Format des Pakets, steht dort „Wird beim Bauen so erzeugt – nur Anzeige“. Wählst du das andere Format, siehst du eine „Vorschau einer Konvertierung – nur Anzeige“. So prüfst du vor einem Formatwechsel, was dabei herauskommt.
- Kopieren legt den Text in die Zwischenablage, Herunterladen speichert ihn als Datei.
Die Quelltext-Ansicht zeigt den gespeicherten Stand. Ungespeicherte Änderungen im Formular siehst du dort erst nach dem Speichern.
Freigegebene Versionen
Sobald eine Version auf einem Depot installiert wurde, ist sie freigegeben und schreibgeschützt. Oben im Editor erscheint dann:
Version … ist freigegeben (installiert) und schreibgeschützt. Für Änderungen eine neue Version anlegen oder zurück auf Entwurf setzen.
In diesem Zustand gilt:
- Alle Felder, Tabellen und Texteditoren sind gesperrt, Speichern und Bauen fehlen.
- .opsi herunterladen und Installieren … bleiben verfügbar, ebenso die Quelltext-Ansicht.
- Als Packager hast du im Hinweisbalken zwei Wege zurück zum Bearbeiten:
| Aktion | Wirkung |
|---|
| Neue Version | Legt eine bearbeitbare Kopie mit allen Daten und Dateien an. Vorbelegt sind dieselbe Produktversion und die Paketversion +1 (bei nicht-numerischer Paketversion wird .1 angehängt). Die freigegebene Version bleibt unverändert. |
| Zurück auf Entwurf | Macht genau diese Version wieder zum Entwurf, ohne die Versionsnummer zu ändern. Ist sie auf einem Produktions-Depot installiert, darf das nur ein Releaser. |
Achtung bei „Zurück auf Entwurf“
Ist die Version bereits auf Depots installiert, bleibt dort das alte Paket, bis du neu baust und erneut installierst. Danach gibt es auf verschiedenen Depots unter Umständen zwei unterschiedliche Pakete mit derselben Versionsnummer. Für Änderungen an verteilten Paketen ist Neue Version meist der sicherere Weg. Mehr dazu in Bauen und verteilen
.
Dateien des Pakets
Dateibaum, Hochladen, Kontextmenü, MSI-Informationen, Installer-Analyse und die Include-Struktur der Scripte.
Rolle: Packager
Überblick
Jede Paketversion besteht aus den drei Bereichen OPSI/, CLIENT_DATA/ und SERVER_DATA/. Im Paket-Editor siehst du sie links unter dem Reiter Dateien. Dort legst du Dateien und Ordner an, lädst Installer hoch, benennst um, verschiebst und löschst. Der Reiter Struktur daneben zeigt, welche Scripte welche anderen Scripte einbinden.
Ändern kannst du Dateien nur in einer Version mit dem Status Entwurf und mit mindestens der Rolle Packager. In freigegebenen Versionen und mit der Rolle Leser ist der Dateibaum schreibgeschützt: Öffnen und Herunterladen funktionieren weiterhin, alle ändernden Einträge im Kontextmenü sind ausgegraut.
Der Dateibaum
Die drei Bereiche stehen immer oben im Baum. OPSI/ und CLIENT_DATA/ sind beim Öffnen aufgeklappt. Ein Bereich ohne Inhalt trägt den Vermerk „leer“. Bei Binärdateien steht die Dateigröße hinter dem Namen.
- Ein Klick auf eine Datei öffnet sie als Reiter im Editor. Textdateien bis 5 MB öffnen sich im Scripteditor
.
- Bilder (PNG, JPG, GIF, BMP, ICO, SVG bis 10 MB) zeigt oPBWeb als Vorschau an.
- Für andere Binärdateien und zu große Textdateien siehst du Pfad, Größe, SHA-256 und Art („Binärdatei“ bzw. „Textdatei, zu groß für den Editor“) sowie die Schaltfläche Herunterladen.
Die Bereiche selbst kannst du weder umbenennen noch löschen.
Hinweis
Die Datei OPSI/control erscheint nicht im Baum und lässt sich auch nicht hochladen: oPBWeb erzeugt sie beim Bauen aus den Paketdaten. Die Inhalte des control und den Changelog bearbeitest du im Reiter control über die Abschnitte Produkt, Abhängigkeiten, Properties und Changelog, siehe Paket-Editor
.
Das Kontextmenü
Ein Rechtsklick auf eine Datei oder einen Ordner öffnet das Kontextmenü.

| Eintrag | Wirkung |
|---|
| Öffnen | Öffnet die Datei als Reiter (nur bei Dateien). |
| Herunterladen | Lädt die Datei auf deinen Rechner (nur bei Dateien). |
| MSI-Informationen | Zeigt die Eigenschaften eines Windows-Installers (nur bei .msi-Dateien). |
| Installer analysieren | Analysiert einen Installer wie der opsi-setup-detector (nur bei Installern in CLIENT_DATA/, ab Packager), siehe Installer analysieren
. |
| Neue Datei | Legt eine Datei im gewählten Ordner an. Vorgeschlagen wird neu.opsiscript. |
| Neuer Ordner | Legt einen Unterordner an. |
| Dateien hochladen … | Öffnet die Dateiauswahl deines Browsers; die Dateien landen im gewählten Ordner. |
| Umbenennen / verschieben | Fragt nach dem Neuen Pfad. Gibst du dabei einen anderen Ordner an, wird die Datei dorthin verschoben. Das geht auch mit ganzen Ordnern. |
| Löschen | Löscht nach einer Rückfrage die Datei bzw. den Ordner mit Inhalt. |
Bei einem Rechtsklick auf eine Datei beziehen sich Neue Datei, Neuer Ordner und Dateien hochladen … auf den Ordner, in dem die Datei liegt.
Ein Rechtsklick auf die freie Fläche unterhalb der Einträge zeigt nur Neue Datei, Neuer Ordner und Dateien hochladen …; Ziel ist dann CLIENT_DATA/.
Neue Datei anlegen
- Klick mit der rechten Maustaste auf den Zielordner, z. B.
CLIENT_DATA/. - Wähl Neue Datei.
- Gib im Feld „Name in CLIENT_DATA/“ den Dateinamen ein, z. B.
install.opsiinc. - Bestätige den Dialog. Die Datei wird angelegt und erscheint im Baum.
Dateien hochladen
Du hast zwei Wege, um Dateien ins Paket zu bringen:
- Per Kontextmenü: Rechtsklick auf den Zielordner, dann Dateien hochladen …. Du kannst mehrere Dateien auf einmal auswählen.
- Per Drag & Drop: Zieh Dateien oder ganze Ordner aus deinem Dateimanager auf einen Ordner im Baum. Die Ordnerstruktur bleibt dabei erhalten. Lässt du sie auf eine Datei fallen, landen sie in deren Ordner; lässt du sie auf eine freie Fläche des Baums fallen, landen sie in
CLIENT_DATA/.
Während des Hochladens zeigt ein Fortschrittsbalken den Stand. Danach meldet oPBWeb „3 Datei(en) hochgeladen“. Eine vorhandene Datei mit gleichem Pfad wird ohne Rückfrage ersetzt.
Tipp
Große Installer kannst du ohne Bedenken mehrfach hochladen: oPBWeb speichert identische Inhalte nur einmal, auch über Paketversionen hinweg.
Ausführbare Dateien
Ob eine Datei ausführbar ist (z. B. ein Shell-Script unter Linux), zeigt der Dateibaum nicht an. oPBWeb übernimmt das Kennzeichen beim Import eines .opsi-Pakets und setzt es beim Bauen wieder. Beim Import aus der Workbench werden .sh- und .py-Dateien in CLIENT_DATA/ automatisch als ausführbar markiert.
Für .msi-Dateien liest oPBWeb die wichtigsten Eigenschaften direkt aus dem Installer. Das ist praktisch, um ProductCode und Version für dein Script zu übernehmen.
- Klick mit der rechten Maustaste auf die
.msi-Datei. - Wähl MSI-Informationen. Der Dialog „MSI: setup.msi“ zeigt kurz „Lese MSI-Datei …“ und dann eine Tabelle, u. a. mit ProductName, ProductVersion, ProductCode, UpgradeCode, Manufacturer und ProductLanguage.
- Klick neben einem Wert auf Kopieren, um ihn in die Zwischenablage zu übernehmen. Der Knopf zeigt kurz „kopiert“.
- Mit Alle Properties anzeigen (24) blendest du die vollständige Property-Tabelle des Installers ein, mit Weniger anzeigen wieder aus.

Installer analysieren
Rollen: Packager, Releaser, Administrator
Für Installer in CLIENT_DATA/ (.exe, .msi, .msix, .appx, .appxbundle, .msixbundle, .deb, .rpm, .dmg, .pkg, .zip) zeigt das Kontextmenü Installer analysieren. oPBWeb untersucht die Datei dann so, wie es der Assistent Paket aus Installer
tut: Installertyp, Product-ID, Version, Installationsverzeichnis, Installations- und Deinstallationsbefehl, MSI-Angaben und die Prüfung, ob die Software installiert ist. Vor der ersten Analyse erscheint einmalig der „Hinweis zum Funktionsumfang“; er lässt sich unter Mein Konto
wieder einschalten.
- Klick mit der rechten Maustaste auf den Installer, zum Beispiel
CLIENT_DATA/files1/setup.exe. - Wähl Installer analysieren. Der Dialog „Installer-Analyse: setup.exe“ startet einen Analyse-Job und zeigt den Fortschritt („Analysiere … 40 %“) und das Protokoll.
- Prüf das Ergebnis. Bei Bedarf stellst du das Ziel-Betriebssystem oder Silent- statt Unattended-Parameter verwenden um und klickst auf Erneut analysieren.
Das Ergebnis ist nur eine Anzeige: Es ändert das Paket nicht. Werte wie den Deinstallationsbefehl oder den MSI-ProductCode übernimmst du von Hand in deine Scripte. Das funktioniert auch in freigegebenen Versionen. Für ein neues Paket aus diesem Installer nutze Aus Installer … in der Paketliste.
Der Reiter Struktur
Der Reiter Struktur zeigt, wie die Scripte des Pakets zusammenhängen. Ausgangspunkt sind die Scripte, die im control für die einzelnen Aktionen (setup, uninstall, update …) eingetragen sind.

- Für jede Aktion siehst du das zugehörige Script. Ist die Datei nicht vorhanden, steht dort „fehlt“.
- Eingerückt darunter folgen die Dateien, die das Script einbindet, jeweils mit der Art der Einbindung (
sub, include_insert, include_append, importLib). - Ein Abzeichen gibt die Herkunft an: Paket (Datei liegt im Paket), Bibliothek (uib-Bibliothek von opsi-script auf dem Client) oder fehlt (nicht gefunden).
- Das Zeichen ↺ markiert eine rekursive Einbindung.
- Ein Klick auf einen Eintrag öffnet die Datei im Editor.
- Mit ⟳ (Neu laden) aktualisierst du die Ansicht, z. B. nachdem du ein Script gespeichert hast.
Sind im control keine Aktions-Scripte hinterlegt, erscheint „Keine Aktions-Skripte im Control hinterlegt.“
Hinweis
Ein Eintrag mit „fehlt“ ist ein Warnsignal: Fehlt ein Script, das im control für eine Aktion eingetragen ist, schlägt das Bauen mit der Meldung „Script … fehlt in CLIENT_DATA.“ fehl.
Scripteditor
opsi-Scripte und andere Textdateien des Pakets bearbeiten: Hervorhebung, Vervollständigung, Diagnose, Hilfe und Snippets.
Rolle: Packager
Überblick
Textdateien des Pakets öffnest du per Klick im Dateibaum (siehe Dateien des Pakets
). Sie erscheinen als eigener Reiter neben dem Reiter control im Scripteditor. Für opsi-Scripte bietet der Editor Vervollständigung, Fehlerprüfung, Hilfe zu den Befehlen und Snippets. Alle anderen Textformate bekommen eine Syntaxhervorhebung. Die Farben der Hervorhebung legst du pro Dateityp unter Mein Konto
fest.
Bearbeiten kannst du Dateien nur in einer Version mit dem Status Entwurf und mindestens mit der Rolle Packager. Sonst ist der Editor schreibgeschützt; Lesen, Suchen, Hilfe und das Kopieren von Text funktionieren trotzdem.

Aufbau
- Werkzeugleiste des Reiters: Pfad der Datei, bei opsi-Scripten die Zähler „2 Fehler“ und „5 Warnungen“, die Schaltfläche Werkzeugleiste ausblenden bzw. Werkzeugleiste einblenden für die Seitenleiste und Speichern.
- Editorfläche: Zeilennummern, Faltmarken am Rand und bei opsi-Scripten eine Leiste mit Diagnose-Symbolen.
- Seitenleiste (nur bei opsi-Scripten) mit den Reitern Snippets, Variablen, Warnungen und Hilfe. Du kannst sie über ihren Rand breiter oder schmaler ziehen.
- Unteres Panel JOBS: zeigt rechts die Cursorposition („Z. 12, Sp. 8“) und das Zeilenende der Datei (CRLF oder LF).
Zeilenenden bleiben beim Speichern erhalten: Eine Datei mit Windows-Zeilenenden (CRLF) bleibt eine CRLF-Datei.
Unterstützte Sprachen
Die Sprache erkennt der Editor am Dateinamen.
| Sprache | Dateien |
|---|
| opsi-script | .opsiscript, .opsiinc, .ins, .opsifunc |
| Shell / Batch | preinst, postinst, .sh, .cmd, .bat |
| Inno Setup | .iss, .isl |
| AutoIt | .au3 |
| PowerShell | .ps1, .psm1, .psd1 |
| INI und ähnliche | .ini, .inf, .reg, .cfg, .conf, .properties, .toml, .desktop |
| XML | .xml, .xsd, .xsl, .manifest, .config, .plist, .svg |
| YAML | .yml, .yaml |
| JSON | .json |
| Python | .py |
Für opsi-script kennt der Editor den Sprachumfang aus dem opsi-script-Handbuch 4.3: Anweisungen, eingebaute Funktionen, Sektionstypen, Befehle der Sekundärsektionen und Konstanten. Dazu kommen die Funktionen der uib-Bibliotheken, die opsi-script mitbringt (z. B. uib_exitcode.opsiscript, uib_strlistutils.opsiscript, uib_backend.opsiscript, osd-lib.opsiscript).
Alle weiteren Funktionen – Vervollständigung, Diagnose, Hilfe, Kontextmenü, Snippets und Seitenleiste – gibt es nur für opsi-Scripte.
Vervollständigung
Beim Tippen schlägt der Editor passende Einträge vor. Mit Strg+Leertaste öffnest du die Liste jederzeit von Hand. Mit den Pfeiltasten wählst du aus, mit Enter übernimmst du den Eintrag.
Vorgeschlagen werden:
- Anweisungen und eingebaute Funktionen von opsi-script,
- Funktionen der uib-Bibliotheken, jeweils mit dem nötigen
importLib "<datei>" als Herkunft, - Funktionen, die im Paket selbst mit
DefFunc definiert sind (siehe Funktionen des Pakets
), - Variablen der aktuellen Datei, sobald du
$ tippst, - Konstanten wie
%ScriptPath%, sobald du % tippst, - Sektionen der Datei,
- Snippets, gekennzeichnet mit „Snippet · Allgemein“.
Übernimmst du eine Funktion, setzt der Editor die Klammern gleich mit und stellt den Cursor hinein. Innerhalb der Klammern zeigt ein kleiner Hinweis die Signatur; der Parameter, an dem du gerade schreibst, ist fett.
Hilfe zu Befehlen
Fährst du mit der Maus über einen Befehl, eine Funktion, eine Variable oder eine Konstante, erscheint ein Hinweis:
- bei Befehlen und Funktionen die Signatur und eine Kurzbeschreibung, ggf. mit „seit opsi-script 4.12“,
- bei Variablen die Art der Deklaration und „deklariert in Zeile 5“,
- bei Konstanten deren Bedeutung,
- bei Sektionsköpfen und Sektionsaufrufen wie
Files_copy_config die Beschreibung des Sektionstyps, bei Befehlen innerhalb einer Sektion (z. B. copy in Files) und bei Aufruf-Modifiern wie /64Bit die Beschreibung passend zur Sektion.
Die ausführliche Hilfe steht im Reiter Hilfe der Seitenleiste: Name, Signatur, Beschreibung, Kategorie und Herkunft (z. B. die Bibliothek oder die Datei mit Zeilennummer). Der Reiter zeigt immer die Hilfe zum zuletzt angefragten Befehl, auch wenn du nur mit dem Mauszeiger darauf zeigst. Mit F1 auf dem Befehl oder über das Kontextmenü Hilfe zum Befehl springt die Seitenleiste direkt auf den Reiter Hilfe. Unten im Reiter führt ein Link zum offiziellen opsi-script-Handbuch auf docs.opsi.org, falls du etwas nachschlagen willst, das die eingebaute Hilfe nicht zeigt.

Findet der Editor keinen Eintrag, steht dort „Keine Hilfe zu „Messagebox“ gefunden.“ Die Beschreibungen sind Zusammenfassungen aus dem opsi-script-Handbuch 4.3 der uib GmbH (CC BY-SA 4.0).
Diagnose
Während du schreibst, prüft der Editor die aktuelle Datei und markiert Auffälligkeiten im Text und am linken Rand. Fährst du mit der Maus über eine Markierung, siehst du die Meldung. Die Zähler „2 Fehler“ und „5 Warnungen“ in der Werkzeugleiste fassen das Ergebnis zusammen.

| Art | Meldung | Bedeutung |
|---|
| Fehler | „Sektion [x] ist nicht definiert“ | Die Datei ruft eine Sektion auf, die es nicht gibt. |
| Hinweis | „Sektion [x] ist in dieser Datei nicht definiert (evtl. in einer eingebundenen Datei)“ | Wie oben, aber die Sektion kann aus einer eingebundenen Datei stammen (bei sub_-Sektionen und Dateien mit Includes). |
| Warnung | „Variable $x$ wird deklariert, aber in dieser Datei nicht verwendet“ | Die Variable ist überflüssig. |
| Warnung | „Variable $x$ wird gesetzt, aber in dieser Datei nicht gelesen“ | Der Wert der Variable wird nie benutzt. |
Hinweis
Die Prüfung betrachtet nur die geöffnete Datei. Variablen oder Sektionen, die in einer eingebundenen Datei verwendet werden, können deshalb als unbenutzt gemeldet werden.
Navigieren und falten
- Gehe zu Definition: F12 oder Strg+Klick auf eine Variable oder Sektion springt zu der Zeile, in der sie definiert ist. Steht eine aufgerufene Sektion nicht in dieser Datei (Hinweis „Sektion … ist in dieser Datei nicht definiert“), sucht oPBWeb sie in den anderen Scripten des Pakets und öffnet die Datei an der Definition. Findet sich keine, meldet oPBWeb „Sektion … ist in keinem Script des Pakets definiert.“
- Alle Vorkommen auswählen: Strg+Umschalt+L markiert alle Stellen des Worts unter dem Cursor; du kannst sie dann gemeinsam ändern.
- Falten: Jede Sektion (
[Actions], [Files_copy] …) lässt sich über die Marke am Rand ein- und ausklappen. - Seitenleiste Variablen: Ein Klick auf einen Eintrag springt in die Zeile (siehe unten).
Das Kontextmenü
Ein Rechtsklick in den Text oder Umschalt+F10 öffnet das Kontextmenü. Du kannst es auch mit der Tastatur bedienen: Pfeiltasten, Enter oder Leertaste zum Ausführen, → öffnet das Untermenü, Esc schließt.
| Eintrag | Tastenkürzel |
|---|
| Gehe zu Definition | F12 |
| Alle Vorkommen auswählen | Strg+Umschalt+L |
| Hilfe zum Befehl | F1 |
| Vorschläge anzeigen | Strg+Leertaste |
| Snippet einfügen ▸ | Untermenü nach Kategorien |
| Snippet aus Auswahl erstellen … | – |
| Ausschneiden | Strg+X |
| Kopieren | Strg+C |
| Einfügen | Strg+V |
| Kommentar umschalten | Strg+Umschalt+C |
| Sektion falten | Strg+Umschalt+[ |
| Alles falten | Strg+Alt+[ |
| Alles entfalten | Strg+Alt+] |
| Suchen/Ersetzen | Strg+F |
Einträge, die den Text ändern, sind in schreibgeschützten Dateien ausgegraut. Erlaubt dein Browser keinen Zugriff auf die Zwischenablage, meldet oPBWeb „Kein Zugriff auf die Zwischenablage – bitte Strg+C/V verwenden.“
Tastenkürzel
Auf dem Mac gilt ⌘ statt Strg und ⌥ statt Alt.
| Tastenkürzel | Wirkung | Dateien |
|---|
| Strg+S | Datei speichern | alle |
| Strg+Z / Strg+Y | Rückgängig / Wiederholen | alle |
| Strg+F | Suchen/Ersetzen (Leiste oben im Editor) | alle |
| F3 / Umschalt+F3 | nächster / vorheriger Treffer | alle |
| Strg+/ oder Strg+Umschalt+C | Kommentar umschalten | alle |
| Tab | einrücken | alle |
| Alt+Ziehen mit der Maus | rechteckige Auswahl | alle |
| Strg+Leertaste | Vorschläge anzeigen | opsi-script |
| F1 | Hilfe zum Befehl unter dem Cursor | opsi-script |
| F12 oder Strg+Klick | Gehe zu Definition | opsi-script |
| Strg+Umschalt+L | alle Vorkommen auswählen | opsi-script |
| Umschalt+F10 | Kontextmenü öffnen | opsi-script |
| Tab / Umschalt+Tab | nach dem Einfügen eines Snippets zum nächsten / vorherigen Platzhalter | opsi-script |
Die Seitenleiste
Bei opsi-Scripten steht rechts neben dem Text die Seitenleiste mit vier Reitern. Mit Werkzeugleiste ausblenden in der Werkzeugleiste des Reiters blendest du sie aus, mit Werkzeugleiste einblenden wieder ein.
Snippets
Hier findest du alle Snippets, die du verwenden darfst: die globalen und deine eigenen (Abzeichen „eigen“). Sie sind nach Kategorien gruppiert; das Feld „Snippets filtern …“ grenzt die Liste ein. Zeigst du mit der Maus auf ein Snippet, erscheint unten eine Vorschau der ersten zehn Zeilen mit hervorgehobenen Platzhaltern. Ein Klick auf eine Kategorie klappt sie ein oder aus.
Ein Snippet einfügen:
- Setz den Cursor an die Stelle im Script, an der das Snippet stehen soll.
- Doppelklick in der Seitenleiste auf das Snippet oder steuere es mit der Tab-Taste an und drück Enter. Alternativ ziehst du das Snippet mit der Maus an die gewünschte Stelle im Text, wählst es im Kontextmenü unter Snippet einfügen oder übernimmst es aus der Vervollständigung.
- Enthält das Snippet Platzhalter der Form
${Name}, ist der erste davon markiert. Überschreib ihn und spring mit Tab zum nächsten Platzhalter.
Über den Link Snippets verwalten gelangst du zur Snippet-Verwaltung, siehe Snippets
.
Variablen
- Definierte Variablen: alle Variablen der Datei mit Art (
DefVar, DefStringList) und Zeile. - Sektionen: alle Sektionen der Datei mit Zeile.
- Konstanten: die Konstanten von opsi-script mit Beschreibung.
Ein Klick auf eine Variable oder Sektion springt in die zugehörige Zeile.
Warnungen

Listet alle Fehler, Warnungen und Hinweise der Datei untereinander, Fehler zuerst, mit Zeilennummer. Die Zahl am Reiter nennt ihre Anzahl. Ein Klick auf einen Eintrag springt in die Zeile. Bei Sektionen, die in einer anderen Datei stehen können, führt Gehe zu Definition unter der Meldung direkt zur Definition in einem anderen Script des Pakets.
Hilfe
Zeigt die ausführliche Hilfe zum zuletzt angefragten Befehl, siehe Hilfe zu Befehlen
. Ist noch nichts angefragt, steht dort „F1 auf einem Befehl zeigt hier die Hilfe an.“
Snippet aus Auswahl erstellen
Code, den du öfter brauchst, machst du direkt im Editor zu einem eigenen Snippet.
- Markiere den gewünschten Text im Script.
- Öffne mit einem Rechtsklick das Kontextmenü und wähl Snippet aus Auswahl erstellen ….
- Im Dialog „Snippet aus Auswahl“ prüfst du den Namen. Vorgeschlagen wird die erste nicht leere Zeile der Auswahl (höchstens 60 Zeichen).
- Wähl eine Kategorie oder leg mit Neue Kategorie eine an und gib den Namen der Kategorie ein.
- Wähl die Sichtbarkeit: Nur für mich oder – nur als Administrator – Global.
- Klick auf Speichern. oPBWeb meldet „Snippet gespeichert“; das Snippet steht sofort in der Seitenleiste zur Verfügung.
Tipp
Stellen, die sich bei jeder Verwendung ändern, schreibst du als Platzhalter ${name} ins Snippet. Nach dem Einfügen springst du mit Tab von Platzhalter zu Platzhalter. Platzhalter setzt du bequem in der Snippet-Verwaltung mit Auswahl als Platzhalter.
Funktionen des Pakets
Funktionen, die du in einem Script des Pakets mit DefFunc definierst, kennt der Editor in allen Scripten desselben Pakets. Sie erscheinen in der Vervollständigung und in der Hilfe, jeweils mit Datei und Zeile der Definition als Herkunft.
Als Beschreibung übernimmt oPBWeb die Kommentarzeilen direkt über dem DefFunc. Kommentare im Stil der uib-Bibliotheken mit @Description und @Returns werden ausgewertet:
; @Description Liefert den Installationspfad des Produkts
; @Returns Pfad als String
DefFunc GetInstallDir(val $Arch$ : string) : string
...
EndFunc
Die Liste der Funktionen wird aktualisiert, sobald du eine Datei gespeichert hast.
Speichern
Mit Strg+S oder der Schaltfläche Speichern in der Werkzeugleiste des Reiters speicherst du die Datei. oPBWeb bestätigt mit „Gespeichert“.
Ungespeicherte Änderungen gehen nicht unbemerkt verloren:
- Schließt du einen geänderten Reiter, fragt oPBWeb „Ungespeicherte Änderungen an setup.opsiscript verwerfen?“.
- Wechselst du die Version oder verlässt du den Editor, kommt „Es gibt ungespeicherte Änderungen. Trotzdem verlassen?“.
- Schließt oder lädst du das Browserfenster neu, warnt der Browser.
Hinweis
Solange eine Datei ungespeicherte Änderungen hat, kannst du das Paket weder bauen noch installieren. Speichere zuerst alle Dateien, siehe Bauen und verteilen
.
Bauen und verteilen
Pakete bauen, auf Depots installieren und deinstallieren, auf andere Stufen übernehmen, Versionen freigeben, zurück auf Entwurf setzen und neue Versionen anlegen.
Rollen: Packager, Releaser
Überblick
Dieses Kapitel beschreibt den Weg einer Paketversion vom Entwurf bis auf die Depots: Bauen erzeugt die .opsi-Datei, Installieren … bringt sie auf ein oder mehrere Depots und gibt die Version dabei frei, Übernehmen … bringt eine getestete Version unverändert auf die Depots der nächsten Stufe. Alle Aktionen findest du in der Werkzeugleiste des Reiters control im Paket-Editor
und im Menü ⋯ (Weitere Aktionen).
Bauen, Installieren auf Test- und Staging-Depots und die übrigen Aktionen in diesem Kapitel brauchen mindestens die Rolle Packager. Für produktive Depots ist die Rolle Releaser nötig. Mit der Rolle Leser kannst du gebaute Pakete nur herunterladen.
Der Lebenszyklus einer Version
Entwurf ──Bauen (beliebig oft)──► „gebaut“
▲ Änderung → „seit dem Bauen geändert“ → erneut bauen
│
│ Installieren … (nur mit aktuellem Build)
│ ▼
└── Zurück auf Entwurf ── Freigegeben (schreibgeschützt)
└── Neue Version → neuer Entwurf
| Status | Bedeutung |
|---|
| Entwurf | Die Version lässt sich bearbeiten und beliebig oft bauen. |
| Freigegeben | Die Version wurde installiert und ist schreibgeschützt. |
Bauen allein gibt eine Version nicht frei. Freigegeben wird sie erst durch das Installieren auf einem Depot. Einzige Ausnahme: Importierst du aus der Workbench eine Version, die auf einem Depot dieses Configservers schon installiert ist, gibt oPBWeb sie beim Import frei, siehe Installierte Versionen freigeben
.
Bauen
- Öffne die Version im Paket-Editor und wechsle auf den Reiter control.
- Speichere alle Änderungen – im control und in allen geöffneten Dateien. Solange etwas ungespeichert ist, bleibt Bauen ausgegraut („Bitte zuerst alle Änderungen speichern.“).
- Klick auf Bauen. Die Schaltfläche zeigt „Baut …“, und unten im Panel JOBS läuft das Protokoll des Build-Jobs mit.
- Nach dem Ende meldet oPBWeb „Paket gebaut“ bzw. „Build fehlgeschlagen“. Neben der Versionsauswahl erscheint das Abzeichen gebaut.

Du kannst eine Version im Status Entwurf so oft bauen, wie du willst. Jeder Build ersetzt den vorherigen; die Version bleibt bearbeitbar.
Das Abzeichen „gebaut“
Das Abzeichen zeigt, ob der letzte Build noch zum aktuellen Stand der Version passt:
- gebaut – Der Build entspricht dem aktuellen Stand. Du kannst installieren.
- seit dem Bauen geändert – Seit dem letzten Build hast du control-Daten, Properties, Abhängigkeiten oder Dateien geändert. Bau die Version erneut, bevor du sie installierst.
Ohne Abzeichen wurde die Version noch nie gebaut.
Wenn der Build fehlschlägt
Das Protokoll im Panel JOBS (und unter Jobs
) nennt den Grund. Häufige Ursachen:
| Meldung | Ursache und Abhilfe |
|---|
| „Script Datei (Aktion) fehlt in CLIENT_DATA.“ | Im control ist für eine Aktion ein Script eingetragen, das es nicht gibt. Leg die Datei an oder korrigiere den Eintrag unter Produkt › Scripte je Aktion. |
| „Die Version wurde während des Builds geändert. Bitte erneut bauen.“ | Jemand hat während des Bauens gespeichert. Bau erneut. |
| „Für diese Version läuft bereits ein Build.“ | Warte, bis der laufende Build fertig ist. |
Warnungen im Protokoll (kein Script für irgendeine Aktion, keine Dateien in CLIENT_DATA/) brechen den Build nicht ab, deuten aber meist auf ein unvollständiges Paket hin.
Gebautes Paket herunterladen
Sobald es einen Build gibt, lädst du ihn mit .opsi herunterladen in der Werkzeugleiste herunter. Die Prüfsummendatei holst du über ⋯ › .md5 herunterladen. Beides steht jeder Rolle zur Verfügung, auch für freigegebene Versionen.
Installieren
Installieren … überträgt den Build auf die gewählten Depots und installiert ihn dort. Die Schaltfläche ist nur aktiv, wenn
- die Version gebaut ist und das Abzeichen gebaut zeigt (sonst: „Bitte zuerst bauen: Die Version wurde noch nicht gebaut oder seitdem geändert.“) und
- es keine ungespeicherten Änderungen gibt.
Achtung
Installieren gibt die Version frei; danach ist sie schreibgeschützt. Die Freigabe erfolgt bereits, wenn der Installations-Job startet, damit sich die Version während der Übertragung nicht mehr ändert. Wird die Version dabei auf keinem Depot installiert – weil die Installation überall fehlschlägt oder du den wartenden Job abbrichst –, ist sie danach wieder ein Entwurf. Klappt die Installation auf mindestens einem Depot, bleibt sie freigegeben. Willst du danach noch etwas ändern, nutze Zurück auf Entwurf oder Neue Version.
Klick auf Installieren …. Der Dialog „Installieren: firefox 128.0-1“ öffnet sich.

Wähl in der Tabelle die Depots aus. Die Tabelle enthält die Depots aller Configserver. Für jedes Depot siehst du:
- Depot – die Depot-ID, beim Depot auf dem Configserver selbst mit dem Zusatz „Configserver“,
- Configserver – der Name des Configservers, zu dem das Depot gehört,
- Stufe – die wirksame Stufe Produktion, Staging oder Test; kursiv, wenn das Depot sie von seinem Configserver erbt,
- Installiert – die dort installierte Version und den Zeitpunkt des letzten Abgleichs.
Vorausgewählt sind die Depots, auf denen du zuletzt installiert hast.
Setz bei Bedarf die Optionen (siehe unten).
Prüf den Zähler „2 von 3 Depots ausgewählt“ und klick auf Installieren.
Der Dialog schließt sich, das Panel JOBS zeigt das Protokoll. Am Ende meldet oPBWeb „Job erfolgreich abgeschlossen“ oder „Job fehlgeschlagen“.
Die Depots werden nacheinander bearbeitet. Ist ein Depot gerade durch einen anderen Job belegt, wartet die Installation, bis es frei ist.
Gesperrte Depots im Dialog
Nicht jedes Depot lässt sich auswählen. Der Grund steht in der letzten Spalte:
| Hinweis | Bedeutung |
|---|
| „erfordert Rolle Releaser“ | Das Depot hat die Stufe Produktion, du hast aber nur die Rolle Packager. Test- und Staging-Depots darfst du als Packager bespielen. |
| „deaktiviert“ | Ein Administrator hat das Depot deaktiviert. |
| „nicht mehr vorhanden“ | Der Configserver meldet das Depot nicht mehr. |
Depots erben die Stufe ihres Configservers; neue Configserver stehen zunächst auf Produktion. Welche Server und Depots Test- oder Staging-Stufe haben, legt ein Administrator fest, siehe opsi-Server
und Depot-Verwaltung
. Hast du mindestens ein produktives Depot ausgewählt, weist der Dialog mit „Mindestens ein produktives Depot ist ausgewählt.“ darauf hin.
Sind gar keine Depots bekannt, erscheint „Keine Depots bekannt. Bitte unter „Depots“ abgleichen.“ – siehe Depots
.
Optionen beim Installieren
- Setup auf allen Clients anfordern, auf denen das Produkt installiert ist – Nach der Installation setzt oPBWeb auf jedem gewählten Depot für alle Clients, auf denen das Produkt bereits installiert ist, die Aktionsanforderung setup. Clients ohne das Produkt bleiben unberührt. So verteilst du ein Update gezielt an die bisherigen Installationen.
- Installation erzwingen (force), auch wenn das Produkt gesperrt ist – Installiert auch dann, wenn das Produkt auf dem Depot gesperrt ist, z. B. nach einer abgebrochenen Installation. Alternativ entsperrst du das Produkt unter Depots
.
Freigegebene Versionen
Nach der Installation ist die Version freigegeben. Im Editor erscheint der Hinweis „Version 128.0-1 ist freigegeben (installiert) und schreibgeschützt. Für Änderungen eine neue Version anlegen oder zurück auf Entwurf setzen.“ mit Dateiname und Größe des Builds sowie den Schaltflächen Neue Version und Zurück auf Entwurf. Alle Formulare, der Dateibaum und der Scripteditor sind schreibgeschützt.

Eine freigegebene Version kannst du jederzeit erneut installieren, z. B. auf weiteren Depots. Installieren … ist dann die hervorgehobene Schaltfläche.
Auf andere Stufe übernehmen
Rollen: Packager, Releaser
Ein Paket, das auf den Test-Depots funktioniert, bringst du mit dieser Aktion unverändert auf die Depots der nächsten Stufe. Übernommen wird genau das Paket, das auf den Depots der Quellstufe installiert ist – derselbe Build, kein neuer. Deshalb lassen sich nur freigegebene Versionen übernehmen.

oPBWeb hat einen gemeinsamen Paketbestand für alle Configserver. Was auf welchem Depot installiert ist, unterscheidet sich je Server und kommt aus dem letzten Abgleich der Depots
.
Typischer Ablauf
- Auf dem Test-Configserver entwickeln: aus der Workbench importieren, bearbeiten, bauen und auf den Test-Depots installieren. Dabei wird die Version freigegeben.
- Testen und die Version mit Übernehmen … von Test nach Staging bringen.
- Nach dem Test auf Staging die Version von Staging nach Produktion übernehmen. Dafür ist die Rolle Releaser nötig.
Dialog öffnen
- Übernehmen … in der Werkzeugleiste der Paketliste öffnet den Dialog „Pakete auf andere Stufe übernehmen“ für alle Pakete.
- Auf andere Stufe übernehmen … im Abschnitt Verteilung der Paketdetails öffnet denselben Dialog nur für das ausgewählte Paket („firefox auf andere Stufe übernehmen“).
Pakete übernehmen
Wähl oben Von (Quellstufe, voreingestellt Test) nach (Zielstufe, voreingestellt Staging). Quell- und Zielstufe müssen verschieden sein.
Prüf unter Ziel-Depots die Depots, auf die übernommen wird. Angeboten werden alle aktiven Depots der Zielstufe, auf allen Configservern. Vorausgewählt sind alle, die du ändern darfst; produktive Depots ohne die Rolle Releaser sind gesperrt („erfordert Rolle Releaser“).
Prüf die Tabelle der Pakete:
| Spalte | Inhalt |
|---|
| Product-ID | Kennung des Produkts |
| Version auf … (z. B. Version auf Test) | die neueste Version, die auf einem Depot der Quellstufe installiert ist |
| Auf den Ziel-Depots | „überall aktuell“ oder „fehlt auf 2 von 3“, dazu die Versionen, die stattdessen auf den Ziel-Depots liegen |
Der Chip Nur ausstehende (voreingestellt aktiv, nur im Dialog für alle Pakete) blendet Pakete aus, die auf allen Ziel-Depots schon aktuell sind. Vorausgewählt sind alle ausstehenden Pakete, die sich übernehmen lassen. Übernehmbare Pakete stehen oben.
Setz bei Bedarf die Optionen:
- Setup auf allen Clients anfordern, auf denen das Produkt installiert ist und Installation erzwingen (force), auch wenn das Produkt gesperrt ist – wie beim Installieren
.
- Auch auf die Workbench der Ziel-Configserver schreiben (vorhandene Projektordner werden überschrieben) – schreibt die Version zusätzlich als Projektordner in die Workbench jedes Configservers, zu dem ein Ziel-Depot gehört.
Prüf den Zähler „Pakete: 2 · Ziel-Depots: 3“ und klick auf Übernehmen (n).
oPBWeb startet einen Installations-Job pro Version und, falls gewählt, einen Export-Job pro Version und Ziel-Configserver. Es meldet „Jobs gestartet: 3“. Jobs für dasselbe Depot laufen nacheinander. Den Fortschritt verfolgst du unter Jobs
.
Warum lässt sich ein Paket nicht übernehmen?
Pakete ohne Häkchen zeigen in der Spalte Auf den Ziel-Depots den Grund:
| Hinweis | Bedeutung |
|---|
| „nicht in oPBWeb“ | Das Produkt gibt es nur auf den Depots, nicht in oPBWeb. |
| „in oPBWeb wieder Entwurf (kein getesteter Build)“ | Die Version wurde nach dem Test mit Zurück auf Entwurf wieder bearbeitbar gemacht. Der getestete Build existiert nicht mehr. Bau und installier sie erneut auf der Quellstufe. |
| „archiviert“ | Das Paket ist archiviert. |
Hast du ein produktives Depot ausgewählt, weist der Dialog mit „Mindestens ein produktives Depot ist ausgewählt.“ darauf hin.
Deinstallieren
Mit ⋯ › Deinstallieren … entfernst du das Produkt von Depots.
- Öffne ⋯ und wähl Deinstallieren …. Der Dialog „Deinstallieren: firefox“ öffnet sich.
- Vorausgewählt sind alle Depots, auf denen das Produkt installiert ist. Depots ohne das Produkt sind mit „nicht installiert“ gesperrt; die Stufenregel gilt wie beim Installieren.
- Prüf die Optionen:
- Dateien im Depot löschen (voreingestellt) – entfernt auch die Paketdateien vom Depot.
- Deinstallation erzwingen (force) – deinstalliert auch, wenn das Produkt gesperrt ist.
- Klick auf Deinstallieren. Das Protokoll erscheint im Panel JOBS.
Deinstallieren bezieht sich auf das Produkt, nicht auf die gerade geöffnete Version. Der Status der Version in oPBWeb ändert sich dadurch nicht.
Zurück auf Entwurf
Mit Zurück auf Entwurf machst du eine freigegebene Version wieder bearbeitbar, ohne die Versionsnummer zu ändern. Das ist sinnvoll, wenn ein Fehler auffällt, die Versionsnummer aber gleich bleiben soll.
- Klick im Hinweis der freigegebenen Version auf Zurück auf Entwurf.
- Der Dialog „Version 128.0-1 wieder bearbeiten“ erklärt die Folgen. Ist die Version bereits auf Depots installiert, nennt er diese.
- Bestätige mit Zurück auf Entwurf. oPBWeb meldet „Version ist wieder bearbeitbar“.
Achtung
Auf den Depots bleibt das alte Paket installiert, bis du neu baust und erneut installierst. Danach liegt dort ein Paket mit gleicher Versionsnummer, aber anderem Inhalt. Clients, die das Produkt schon haben, bemerken die Änderung nicht von selbst – nutze dafür beim Installieren die Option Setup auf allen Clients anfordern, ….
Solange für die Version ein Job wartet oder läuft, ist Zurück auf Entwurf nicht möglich.
Neue Version
Neue Version legt eine bearbeitbare Kopie der aktuellen Version mit allen Daten und Dateien an. Du findest die Aktion im Hinweis einer freigegebenen Version und im Menü ⋯; sie funktioniert für Entwürfe und freigegebene Versionen.
- Klick auf Neue Version.
- Prüf Produktversion und Paketversion. Vorgeschlagen wird dieselbe Produktversion mit um eins erhöhter Paketversion; ist die Paketversion keine reine Zahl, wird
.1 angehängt. - Klick auf Anlegen. Der Editor öffnet die neue Version im Status Entwurf.
Denk daran, in der neuen Version einen Changelog-Eintrag anzulegen, siehe Paket-Editor
.
In Workbench exportieren
Mit ⋯ › In Workbench exportieren … schreibst du die Version als Projektordner in die Workbench eines Configservers, z. B. um dort mit opsi-makepackage oder anderen Werkzeugen weiterzuarbeiten. Das geht für Entwürfe und freigegebene Versionen.
- Öffne ⋯ und wähl In Workbench exportieren ….
- Wähl unter Configserver den Server, in dessen Workbench du schreiben willst (Name und Stufe; vorbelegt ist der zuletzt gewählte, sonst der erste Server der Stufe Test).
- Gib den Projektordner an. Vorbelegt ist der Ordner, aus dem die Version importiert wurde, sonst die Product-ID. Unterordner trennst du mit
/ (bis vier Ebenen), zum Beispiel develop/firefox; fehlende Ordner legt oPBWeb an. Das Feld schlägt die Gruppenordner vor, die beim letzten Einlesen auf der Workbench des Servers lagen. - Gibt es den Ordner schon, setz das Häkchen Vorhandenen Ordner überschreiben (überzählige Dateien in den Paketordnern werden gelöscht). Ohne Häkchen schlägt der Export bei einem vorhandenen Ordner fehl.
- Klick auf Exportieren. Nach dem Job meldet oPBWeb „In die Workbench exportiert“.
Geschrieben werden nur OPSI/, CLIENT_DATA/ und SERVER_DATA/. Andere Inhalte des Projektordners bleiben erhalten. Nach dem Export zeigt die Paketliste den Projektordner unter Workbench
. Den umgekehrten Weg beschreibt Pakete
(Workbench …). Änderungen, die später direkt auf der Workbench entstehen, holst du mit Mit Workbench abgleichen … zurück, siehe Paket-Editor
.
Job-Ausgabe verfolgen
Bauen, Installieren, Deinstallieren, das Übernehmen auf andere Stufen und der Export laufen als Jobs im Hintergrund. Du kannst währenddessen weiterarbeiten.
- Das Panel JOBS unten im Editor öffnet sich beim Start automatisch. Es listet die letzten 30 Jobs dieses Produkts und zeigt das Protokoll des gewählten Jobs live an. Mit × schließt du das Panel, mit Jobs ▴ öffnest du es wieder.
- Die Statusleiste zeigt den Fortschritt der Jobs, die du in diesem Browser-Tab gestartet hast.
- Alle Jobs aller Benutzer findest du unter Jobs
.
Snippets
Wiederverwendbare Codebausteine mit Platzhaltern anlegen, ordnen, importieren und exportieren.
Rollen: Leser, Packager, Releaser, Administrator
Überblick
Snippets sind Textbausteine für opsi-script, die du im Scripteditor per Doppelklick, Autovervollständigung oder Kontextmenü einfügst. Die Ansicht Snippets in der Aktivitätsleiste ist der Ort, an dem du sie verwaltest: Kategorien anlegen, Snippets schreiben und testen, Dateien importieren und exportieren.
Leser sehen alle Snippets, können aber nichts ändern. Ab der Rolle Packager legst du eigene Snippets an und pflegst die gemeinsamen Kategorien.
Globale und eigene Snippets
Jedes Snippet hat eine Sichtbarkeit:
| Sichtbarkeit | Wer sieht es? | Wer darf es ändern? |
|---|
| Global (für alle) | alle Benutzer | nur Administratoren |
| Nur für mich | nur du | nur du |
In der Liste erkennst du die Sichtbarkeit am Badge global bzw. eigen. Kategorien sind dagegen für alle gemeinsam: Jeder Packager kann Kategorien anlegen, umbenennen und löschen, und alle sehen dieselbe Kategorienstruktur.
Nur für Administratoren
Globale Snippets anlegen, ändern, verschieben und löschen dürfen nur Administratoren. Öffnest du als Packager ein globales Snippet, siehst du den Hinweis „Globales Snippet – nur Admins können es ändern.“ Mit Duplizieren legst du dir eine eigene Kopie an, die du frei bearbeiten kannst.
Aufbau der Ansicht

Die Ansicht hat drei Spalten. Die Breite der linken und rechten Spalte kannst du durch Ziehen am Rand ändern.
- Links – SNIPPETS: Schaltflächen Neues Snippet, Neue Kategorie, Snippets importieren und Snippets exportieren, darunter der Filter Alle | Global | Eigene und das Suchfeld „Filtern …“ (durchsucht Name und Text). Darunter der Kategorienbaum mit der Anzahl der Snippets je Kategorie.
- Mitte: das ausgewählte Snippet mit den Feldern Name, Kategorie, Sichtbarkeit und Beschreibung, dem Codeeditor und der Leiste PLATZHALTER. Oben rechts Duplizieren, Löschen, Verwerfen und Speichern.
- Rechts – TESTEN: ein kleiner Scripteditor, in dem du ausprobierst, wie sich das Snippet beim Einfügen verhält.
Kategorien verwalten
Jedes Snippet gehört zu genau einer Kategorie. Bevor du das erste Snippet anlegen kannst, muss es mindestens eine Kategorie geben.
- Anlegen: Klick auf Neue Kategorie. Die Kategorie heißt zunächst „Neue Kategorie“.
- Umbenennen: Doppelklick auf den Kategorienamen oder Klick auf ✎ (Kategorie umbenennen). Gib den neuen Namen ein und bestätige mit Enter; Esc bricht ab. Kategorienamen müssen eindeutig sein.
- Löschen: Klick auf × neben der Kategorie. Das geht nur bei leeren Kategorien („Nur leere Kategorien können gelöscht werden“).
- Snippet verschieben: Zieh ein Snippet mit der Maus auf eine andere Kategorie. Globale Snippets können nur Administratoren verschieben.
Snippet anlegen und bearbeiten

- Klick auf Neues Snippet. Es entsteht ein Entwurf mit dem Namen „Neues Snippet“ und dem Text
; ${Kommentar}. - Gib einen aussagekräftigen Name ein und wähl die Kategorie.
- Wähl die Sichtbarkeit. Als Packager steht nur Nur für mich zur Verfügung; Global (für alle) ist Administratoren vorbehalten.
- Trag optional eine Beschreibung ein. Sie erscheint später in der Autovervollständigung des Scripteditors.
- Schreib den Snippet-Text im Editor. Er unterstützt opsi-script-Hervorhebung, Platzhalter werden farbig markiert.
- Klick auf Speichern.
Solange es ungespeicherte Änderungen gibt, zeigt ein Punkt neben dem Titel das an. Verwerfen stellt den gespeicherten Stand wieder her. Wechselst du mit ungespeicherten Änderungen zu einem anderen Snippet, fragt oPBWeb „Ungespeicherte Änderungen verwerfen?“.
Löschen entfernt das Snippet nach einer Rückfrage endgültig.
Platzhalter
Platzhalter markieren die Stellen, die du nach dem Einfügen anpassen musst. Sie haben die Form ${name}, zum Beispiel:
; ${Kommentar}
Winbatch_${Sektionsname}
Nach dem Einfügen springst du mit der Tab-Taste von Platzhalter zu Platzhalter und überschreibst ihn jeweils.
- Die Leiste PLATZHALTER unter dem Editor listet alle Platzhalter des Snippets auf (oder „keine“).
- Markiere ein Stück Text im Editor und klick auf Auswahl als Platzhalter, um es in
${…} einzuschließen.
Snippet testen
Im Bereich TESTEN probierst du das Snippet aus, bevor du es im echten Script verwendest:
- Setz den Cursor im Testeditor an die gewünschte Stelle.
- Klick auf Einfügen. Das Snippet wird genau wie im Scripteditor eingefügt.
- Spring mit Tab durch die Platzhalter.
- Klick auf Zurücksetzen, um den Testeditor wieder auf den Beispieltext zu bringen.
Snippet aus dem Scripteditor erstellen
Du kannst ein Snippet auch direkt aus einem Script heraus anlegen:
- Markiere im Scripteditor den gewünschten Text.
- Öffne mit Rechtsklick das Kontextmenü und wähl Snippet aus Auswahl erstellen ….
- Im Dialog „Snippet aus Auswahl“ prüfst du Name (vorbelegt mit der ersten nicht leeren Zeile), Kategorie und Sichtbarkeit. Über „Neue Kategorie“ legst du bei Bedarf gleich eine neue Kategorie an.
- Klick auf Speichern.
Wie du Snippets im Scripteditor einfügst, beschreibt Scripteditor
.
Snippets importieren
oPBWeb liest zwei Dateiformate:
- JSON-Exporte von oPBWeb (
.json, Format „opbweb-snippets“), etwa von einer anderen oPBWeb-Installation oder einem Kollegen. - Snippet-Dateien des alten ScriptEditors (
opsi.sn-*.def, z. B. opsi.sn.def).
So importierst du:
- Klick auf Snippets importieren.
- Wähl die Sichtbarkeit der importierten Snippets. Packager importieren immer als Nur für mich; global importieren können nur Administratoren.
- Klick auf Datei auswählen … und wähl die Datei aus.
oPBWeb meldet anschließend „42 Snippets importiert, 3 übersprungen“. Übersprungen werden Snippets, die es mit gleichem Namen in derselben Kategorie und Sichtbarkeit schon gibt. Fehlende Kategorien werden automatisch angelegt; Snippets ohne Kategorie landen in „Allgemein“.
Alte Platzhalter
Der alte ScriptEditor schrieb Platzhalter in spitzen Klammern (<name>). Beim Import wandelt oPBWeb sie in ${name} um. Am importierten Snippet siehst du dann den Hinweis „Alte Platzhalter in spitzen Klammern wurden beim Import in ${x} umgewandelt.“ mit einer Liste der Umwandlungen sowie die Herkunft „importiert aus …“.
Snippets exportieren
Klick auf Snippets exportieren (die Schaltfläche gibt es ab der Rolle Packager). Dein Browser lädt die Datei opbweb-snippets.json herunter. Sie enthält alle Snippets, die du sehen darfst, also alle globalen und deine eigenen, jeweils mit Name, Kategorie, Beschreibung und Text. Die Datei kannst du in einer anderen oPBWeb-Installation wieder importieren.
Depots
Configserver und Depots ansehen und abgleichen, installierte Produkte und Repository prüfen, Dateien auf dem Server verwalten und Depots vergleichen.
Rollen: Leser, Packager, Releaser, Administrator
Überblick
Die Ansicht Depots zeigt alle opsi-Configserver, die in oPBWeb eingerichtet sind, und ihre Depots so, wie oPBWeb sie zuletzt gelesen hat. Du siehst, welche Produkte in welcher Version installiert sind, räumst das Repository auf, bearbeitest Dateien direkt auf dem Server und vergleichst die Depots untereinander.
Leser sehen alles, können aber nichts verändern. Was Packager und Releaser auf einem Depot ändern dürfen, hängt von dessen Stufe ab (siehe Stufen und Rollen
). Configserver hinzufügen, bearbeiten und entfernen können nur Administratoren, siehe opsi-Server
.
Configserver und Depots
Links steht ein Baum mit allen Configservern und ihren Depots. Jedes Depot gehört zu genau einem Configserver.
Configserver sind fett dargestellt. Jede Zeile zeigt:
- einen Statuspunkt: grün, wenn die letzte Prüfung erfolgreich war, rot, wenn sie fehlgeschlagen ist, grau, wenn der Server noch nicht geprüft wurde,
- den Namen des Servers und ein Stufen-Badge (Produktion, Staging oder Test),
- darunter die Kurzinfo „Configserver · 3 Depots“.
Depots stehen eingerückt unter ihrem Configserver, jeweils mit Depot-ID, Stufen-Badge und einer Kurzinfo wie „Configserver · 42 Produkte“ (beim Depot auf dem Configserver selbst) oder „17 Produkte“. Ein kursives, helleres Stufen-Badge bedeutet: Das Depot hat keine eigene Stufe und erbt die seines Configservers (Tooltip „vom Configserver geerbt“). Zusätzlich können dort folgende Hinweise stehen:
- deaktiviert: Ein Administrator hat das Depot für oPBWeb abgeschaltet. Du kannst nichts darauf installieren.
- nicht mehr vorhanden: Der Configserver meldet das Depot nicht mehr. oPBWeb behält es mit seinen Einstellungen, bis ein Administrator es entfernt.
Ist noch kein Configserver eingerichtet, steht dort „Noch kein Configserver eingerichtet.“ Das Anlegen übernimmt ein Administrator.
Liste zuklappen und durchsuchen
Bei vielen Depots hilft dir zweierlei:
- Zuklappen: Ein Klick auf den Pfeil vor dem Namen eines Configservers klappt seine Depots zu oder wieder auf. Die Zeile des Servers bleibt sichtbar. oPBWeb merkt sich in diesem Browser, welche Server zugeklappt sind.
- Suchen: Das Feld „Depot suchen“ über der Liste sucht in Depot-ID und Beschreibung. Passt der Name eines Configservers, siehst du alle seine Depots. Während der Suche sind alle Server mit Treffern aufgeklappt. Findet die Suche nichts, steht dort „Kein Depot passt zur Suche.“
Configserver ansehen
Klick auf die Zeile eines Configservers. Als Packager, Releaser oder Leser siehst du rechts eine Übersicht, die du nicht ändern kannst:
- Name und Stufe des Servers,
- URL des Configservers,
- Zustand: „erreichbar“ oder „nicht erreichbar“ mit der Fehlermeldung der letzten Prüfung,
- die Gültigkeit des hinterlegten CA-Zertifikats.
Ab Packager steht oben Abgleichen für genau diesen Server. Administratoren sehen an dieser Stelle stattdessen das Formular des Servers, siehe opsi-Server
.
Depot ansehen
Klick auf ein Depot, um rechts seine Details zu sehen. Oben stehen Depot-ID, Stufe, der Name des Configservers und der Zeitpunkt des letzten Abgleichs („abgeglichen …“).
Abgleichen
Ein Abgleich liest die Depots eines Configservers und ihre installierten Produkte neu. Er läuft als Job; währenddessen steht „Gleicht ab …“ auf der Schaltfläche. Abgleichen kannst du ab der Rolle Packager:
| Schaltfläche | Wirkung | Titel des Jobs |
|---|
| Abgleichen in der Detailansicht eines Depots oder Configservers | gleicht nur diesen Configserver und seine Depots ab | „Depots abgleichen (Server)“ |
| ⟳ oben in der Liste (Tooltip „Alle Configserver abgleichen“) | gleicht alle Configserver nacheinander ab | „Depots aller Configserver abgleichen“ |
Der Abgleich eines Servers ändert nie die Depots eines anderen Servers.
Ein Abgleich über Abgleichen oder ⟳ liest außerdem die Workbench jedes Configservers. Dabei merkt sich oPBWeb, welcher Projektordner welches Paket in welcher Version enthält; das siehst du in der Paketliste unter Workbench
. Ist die Workbench nicht lesbar, meldet der Job das als Warnung und gleicht die Depots trotzdem ab.
oPBWeb prüft zusätzlich alle fünf Minuten (Standard, einstellbar unter Einstellungen → Worker) selbstständig alle Configserver und gleicht die Depots jedes erreichbaren Servers ab; dieser automatische Abgleich erscheint nicht in der Jobliste und liest die Workbench nicht. Die Workbench liest der Worker getrennt davon, standardmäßig stündlich (ebenfalls unter Einstellungen → Worker). Einen manuellen Abgleich brauchst du vor allem, wenn du eine Änderung auf dem Server sofort sehen willst.
Einstellungen des Depots
Unter den Depotdetails stehen die Einstellungen mit Stufe, Dienst-URL und Aktiv sowie Infofelder wie Verwendete URL und Von opsi gemeldet. Bei Stufe bedeutet „wie Configserver (Produktion)“, dass das Depot die Stufe seines Configservers erbt. Ändern können diese Werte nur Administratoren; für alle anderen sind sie schreibgeschützt. Details stehen in Depot-Verwaltung
.
Stufen und Rollen
Jeder Configserver hat eine Stufe: Produktion, Staging oder Test. Seine Depots erben diese Stufe, solange ein Administrator für ein Depot keine eigene festlegt. Die wirksame Stufe eines Depots bestimmt, wer dort schreibende Aktionen ausführen darf:
| Aktion | Test- und Staging-Depot | Produktives Depot |
|---|
| Installieren, Deinstallieren | Packager | Releaser |
| Pakete auf diese Stufe übernehmen | Packager | Releaser |
| Produkte entsperren | Packager | Releaser |
| Dateien aus dem Repository löschen | Packager | Releaser |
Administratoren dürfen alles, was Releaser dürfen. Neue Configserver starten in der Stufe Produktion; ein Administrator stellt Test- und Staging-Server bzw. einzelne Depots um. Fehlt dir die nötige Rolle, blendet oPBWeb die betreffenden Schaltflächen aus oder sperrt das Depot im Dialog.
Wie du ein getestetes Paket von einer Stufe auf die nächste bringst, steht in Bauen und verteilen
.
Tab „Installierte Produkte“

Die Tabelle zeigt alle Produkte, die auf dem Depot installiert sind:
| Spalte | Bedeutung |
|---|
| Product-ID | Kennung des Produkts. Gibt es das Paket in oPBWeb, ist die ID ein Link in den Paket-Editor. |
| Im Depot | installierte Version (Produkt- und Paketversion) |
| oPBWeb (gebaut) | gebaute Version in oPBWeb; orange, wenn sie von der installierten abweicht |
| Typ | Produkttyp |
Mit dem Chip Abweichend von oPBWeb schränkst du die Liste auf Produkte ein, bei denen Depot und oPBWeb unterschiedliche Versionen haben. Das Feld „Filtern …“ sucht nach der Product-ID.
Gesperrte Produkte entsperren
Bricht eine Installation ab, bleibt das Produkt auf dem Depot manchmal gesperrt. Es trägt dann das Badge gesperrt. So hebst du die Sperre auf:
- Setz bei den gesperrten Produkten das Häkchen.
- Klick auf Entsperren (n).
Das Entsperren läuft als Job; danach meldet oPBWeb „2 Produkte entsperrt“. Die Häkchen und die Schaltfläche siehst du nur, wenn du auf diesem Depot schreiben darfst.
Tab „Dateien“
Der Tab Dateien ist ein Dateimanager für die Freigaben des Depots. Je nach Depot gibt es bis zu drei Freigaben als Unter-Tabs:
| Freigabe | Inhalt | Zugriff |
|---|
/workbench | Arbeitsverzeichnis für Paketquellen | lesen für alle, schreiben ab Packager |
/repository | hochgeladene .opsi-Dateien | nur lesen |
/depot | entpackte, installierte Produkte | nur lesen |
/workbench gibt es nur auf dem Configserver und auf Depots, die eine Workbench melden. In schreibgeschützten Freigaben zeigt oPBWeb den Hinweis „/repository ist nur lesbar.“ bzw. „Ändern erfordert die Rolle Packager.“

Navigieren
- Klick auf einen Ordner öffnet ihn; die Zeile ‹ eine Ebene höher führt zurück. Oben siehst du den aktuellen Pfad.
- Das Feld „Filtern …“ filtert den aktuellen Ordner.
- Neu laden liest den Ordner erneut vom Server.
- Ordner in
/workbench, zu denen es in oPBWeb ein Paket mit gleicher Product-ID gibt, tragen das Badge in oPBWeb, auch in Unterordnern.
Dateien ansehen und bearbeiten
Klick auf eine Textdatei (Scripte, control, .ini, .xml, .json, .ps1, .cmd, .log und viele mehr), um sie im Texteditor zu öffnen. opsi-Scripte bekommen dabei dieselbe Hervorhebung wie im Scripteditor. In /workbench kannst du die Datei ändern und mit Speichern zurückschreiben; in den anderen Freigaben ist sie „nur lesbar“.
Der Editor behält Zeichenkodierung (UTF-8 oder CP1252) und Zeilenenden der Datei bei; die Kodierung steht unten im Dialog. Bearbeiten lassen sich Textdateien bis 2 MB. Größere Dateien und Binärdateien lädst du herunter.
Herunterladen
Klick auf eine Datei, die kein Text ist, oder wähl im Kontextmenü (Rechtsklick) Herunterladen. Der Download läuft in zwei Schritten: Zuerst kopiert ein Job die Datei vom Server, danach startet dein Browser den Download. Nur wer den Download ausgelöst hat, kann die Datei abholen.
In der Workbench arbeiten (ab Packager)
In /workbench stehen dir zusätzlich zur Verfügung:
- Neuer Ordner und Neue Datei (Vorschlag
neu.opsiscript) - Dateien hochladen … und Ordner hochladen …
- im Kontextmenü: Umbenennen und Löschen (mit Rückfrage; bei Ordnern samt Inhalt)
Alternativ ziehst du Dateien oder ganze Ordner per Drag & drop in die Liste. Sie landen im aktuell geöffneten Ordner. Der Fortschritt erscheint als „Lade hoch … 45 %“; anschließend kopiert ein Job die Dateien auf den Server und oPBWeb meldet „3 Dateien hochgeladen“.
Paket aus der Workbench übernehmen
Ein Paketverzeichnis in /workbench kannst du direkt in oPBWeb importieren:
- Öffne
/workbench und darin ggf. den Gruppenordner, in dem das Projekt liegt (bis vier Ebenen tief). - Klick mit der rechten Maustaste auf den Paketordner.
- Wähl In oPBWeb importieren.
Der Import läuft als Job und liest aus der Workbench des Configservers, zu dem das Depot gehört; danach meldet oPBWeb „{name} importiert“. Eine schon vorhandene Version wird dabei nicht überschrieben. Zum Ersetzen und für den Import mehrerer Ordner nutzt du den Dialog Workbench … in der Paketliste, siehe Pakete
.
Tab „Repository“
Das Repository eines Depots enthält die hochgeladenen .opsi-Dateien samt .md5- und .zsync-Prüfdateien. Im Laufe der Zeit sammeln sich dort alte Versionen an.

Beim ersten Öffnen liest oPBWeb das Repository automatisch ein; mit Repository lesen wiederholst du das. Das Lesen läuft als Job. Darüber steht eine Zusammenfassung wie „12 Pakete, 1,4 GB“.
Die Tabelle zeigt Datei, Product-ID, Version und Größe sowie folgende Badges:
- Installiert: Diese Version ist auf dem Depot installiert.
- MD5 fehlt: Ohne
.md5 kann das Depot die Datei nicht prüfen. - ohne zsync: Es fehlt die
.zsync-Datei.
Prüfdateien ohne zugehörige .opsi-Datei listet oPBWeb unter „Verwaiste Prüfsummen“ auf.
Dateien aus dem Repository löschen
- Setz bei den Paketen, die weg sollen, das Häkchen.
- Klick auf Löschen (n).
- Bestätige die Rückfrage „2 Pakete samt .md5 und .zsync aus dem Repository von depot01.example.local löschen?“.
oPBWeb löscht die .opsi-Dateien zusammen mit ihren Prüfdateien. Installierte Produkte bleiben dabei erhalten. Die Häkchen siehst du nur, wenn du auf diesem Depot schreiben darfst (siehe Stufen und Rollen
).
Tab „Vergleich“
Der Tab Vergleich stellt für das ausgewählte Depot drei Versionen jedes Produkts nebeneinander: oPBWeb (gebaut), den Configserver, zu dem das Depot gehört (Spaltenkopf mit dem Zusatz „Configserver“), und das Depot selbst. Wählst du das Depot auf dem Configserver, gibt es nur die beiden Spalten oPBWeb und Configserver. Abweichende Versionen sind orange markiert.

- Der Chip Nur Abweichungen ist standardmäßig aktiv und blendet Produkte aus, die überall gleich sind.
- „Filtern …“ sucht nach der Product-ID.
- Als CSV exportieren speichert den Vergleich über alle Depots aller Configserver als
depot-vergleich-JJJJ-MM-TT.csv, also mehr Spalten, als die Tabelle zeigt. Filter und Nur Abweichungen gelten auch für die Datei; „abweichend“ heißt dort: nicht auf allen Depots gleich. Die Datei ist UTF-8-kodiert (mit BOM) und durch Semikolon getrennt; die Spalten heißen product_id, opbweb und danach je Depot die Depot-ID.
Verwandte Themen
Jobs
Länger laufende Aktionen als Jobs verfolgen, Protokolle lesen und wartende Jobs abbrechen.
Rollen: Leser, Packager, Releaser, Administrator
Überblick
Alles, was länger dauert oder mit einem opsi-Server spricht, führt oPBWeb als Job im Hintergrund aus. Du startest die Aktion, arbeitest weiter und verfolgst den Fortschritt in der Statusleiste, im Paket-Editor oder in der Ansicht Jobs.
Alle Benutzer sehen alle Jobs, auch die der Kollegen, samt Protokoll. So lässt sich nachvollziehen, wer wann was gebaut oder verteilt hat.
Welche Aktionen laufen als Job?
| Aktion | Anzeige in der Spalte Aktion |
|---|
.opsi-Paket importieren | Import |
| Bauen | Bauen |
| Installieren …, Übernehmen … auf andere Stufe | Installieren |
| Deinstallieren … | Deinstallieren |
| Abgleichen der Depots (ein Configserver oder alle) | Depot-Abgleich |
| Bereinigen … des Objektspeichers (nur Administratoren) | Bereinigung |
| Workbench einlesen, importieren, exportieren | technischer Name, z. B. scan_workbench, import_workbench, import_workbench_many (Import mehrerer Projektordner), export_workbench |
| Mit Workbench abgleichen …: vergleichen, übernehmen | compare_workbench, apply_workbench |
| Repository lesen, Repository-Dateien löschen | list_repository, delete_repository_files |
| Produkte entsperren | unlock_products |
| Dateien im Tab Dateien der Depots hoch- und herunterladen | files_upload, files_download |
| CA-Zertifikat holen, Verbindung testen (nur Administratoren) | fetch_opsi_ca, check_opsi_server |
Nur die ersten sechs Aktionen haben einen übersetzten Namen; alle anderen erscheinen mit ihrem technischen Namen. Titel und Protokollzeilen der Jobs kommen vom Server und erscheinen in der Sprache der Oberfläche. Jobs, die vor Version 0.15.0 entstanden sind, behalten ihre deutschen Titel und Protokollzeilen.
Die Jobliste
Öffne Jobs in der Aktivitätsleiste.

Oben stehen die Filter:
- Alle, Laufend, Wartend, Fehlgeschlagen: Chips mit der jeweiligen Anzahl
- Meine: zeigt nur Jobs, die du selbst ausgelöst hast
- Suchfeld „Paket, Depot oder Titel …“
Die Tabelle hat die Spalten Aktion, Titel, Ziel (Paket oder Depot), Status, Ausgelöst von, Start und Dauer. Laufende Jobs zeigen beim Status zusätzlich den Fortschritt in Prozent. Die Liste aktualisiert sich alle paar Sekunden von selbst und zeigt die letzten 200 Jobs („200 von 1.348 Jobs angezeigt“).
Ein Job hat einen dieser Zustände: wartet, läuft, erfolgreich, fehlgeschlagen oder abgebrochen.
Tipp
Über die Befehlssuche (Strg K) erreichst du mit Meine Jobs direkt die gefilterte Liste deiner eigenen Jobs.
Job-Details und Live-Protokoll
Klick auf einen Job in der Liste. Rechts erscheinen Titel, Status, Ziel, Auslöser und Startzeit, ein Fortschrittsbalken, bei Fehlern die Fehlermeldung und darunter das Protokoll.
Bei laufenden Jobs kommen neue Protokollzeilen live hinzu, und die Ansicht scrollt automatisch mit. Die Zeilen sind nach Bedeutung eingefärbt: grün für Erfolg, orange für Warnungen, rot für Fehler.
Im Detailbereich stehen je nach Job diese Schaltflächen:
- Zum Paket: öffnet das betroffene Paket im Paket-Editor (bei Jobs, die zu einem Paket gehören).
- Kopieren: kopiert das komplette Protokoll mit Uhrzeiten in die Zwischenablage, etwa für eine Fehlermeldung an den Administrator.
- Abbrechen: siehe unten.
Jobs abbrechen
Abbrechen kannst du nur Jobs im Zustand wartet, also Jobs, die noch nicht begonnen haben. Ein laufender Job lässt sich nicht abbrechen; er läuft bis zum Ende oder bis zu einem Fehler.
- Eigene wartende Jobs bricht jeder Benutzer selbst ab.
- Wartende Jobs anderer Benutzer kann nur ein Administrator abbrechen.
Wähl den Job aus und klick auf Abbrechen. Der Job erhält den Zustand abgebrochen.
Brichst du einen wartenden Installations-Job ab, der einen Entwurf freigegeben hat, ist die Version danach wieder ein Entwurf.
Hinweis
Jobs warten zum Beispiel, wenn bereits ein anderer Job auf demselben Depot arbeitet. oPBWeb führt Jobs für ein Depot nacheinander aus, damit sich Installationen nicht gegenseitig stören.
Fortschritt in der Statusleiste
Jobs, die du in diesem Browser-Tab gestartet hast, erscheinen rechts in der Statusleiste mit Titel, Fortschrittsbalken und Prozentangabe. Ein Klick darauf öffnet den Job in der Jobliste. Ist kein Job mehr aktiv, zeigt die Statusleiste den zuletzt beendeten Job mit seinem Ergebnis.
Zusätzlich zeigt das Symbol Jobs in der Aktivitätsleiste die Anzahl der laufenden Jobs, die du in diesem Browser gestartet hast.
Bricht die Verbindung zum Server während eines Jobs ab, meldet oPBWeb „Verbindung zum Job verloren“. Der Job selbst läuft auf dem Server weiter; seinen Endstand siehst du in der Jobliste.
Jobs im Paket-Editor
Im Paket-Editor gibt es unten das Panel JOBS. Es listet die letzten Jobs des geöffneten Pakets mit Status und Zeitpunkt und zeigt rechts das Protokoll des ausgewählten Jobs, bei laufenden Jobs live.
Startest du im Editor einen Job, etwa mit Bauen oder Installieren …, öffnet sich das Panel automatisch. Mit × schließt du es; die Schaltfläche Jobs ▴ am unteren Rand blendet es wieder ein.
Mehr zum Bauen und Verteilen steht in Bauen und verteilen
.
Konto und Sprache
Oberflächensprache festlegen, Passwort ändern, abmelden, die Darstellung und die Farben im Editor anpassen.
Rollen: Leser, Packager, Releaser, Administrator
Überblick
Die Einstellungen zu deinem eigenen Konto erreichst du über das Avatar-Symbol mit deinen Initialen ganz rechts in der Kopfleiste. Daneben findest du in der Kopfleiste die Umschalter für Sprache und Hell-/Dunkel-Darstellung sowie den Zugang zu diesem Handbuch.
Diese Funktionen stehen allen Benutzern zur Verfügung, unabhängig von der Rolle.
Das Benutzermenü
Klick auf das Avatar-Symbol, um das Benutzermenü zu öffnen.

Oben im Menü stehen dein Anzeigename sowie Benutzername und Rolle, zum Beispiel mmuster · Packager. Darunter folgen Standardsprache, Mein Konto, Passwort ändern und Abmelden.
Mein Konto
Mein Konto im Benutzermenü öffnet eine eigene Seite. Oben stehen deine Kontodaten: Benutzername, Name, E-Mail, Rolle und Herkunft (lokal oder Verzeichnis). Dort legst du auch die Standardsprache fest und änderst mit Passwort ändern dein Passwort, genau wie im Benutzermenü. Darunter folgen die Farben im Editor
.
Einmalige Hinweise
Manche Hinweise zeigt oPBWeb nur beim ersten Mal, zum Beispiel den „Hinweis zum Funktionsumfang“ vor dem ersten Öffnen des Assistenten Paket aus Installer
. Bestätigst du einen solchen Hinweis, merkt sich oPBWeb das an deinem Konto.
In der Zeile Einmalige Hinweise siehst du, wie viele Hinweise du bestätigt hast, zum Beispiel „1 Hinweis bestätigt“. Mit Wieder anzeigen setzt du sie zurück; jeder Hinweis erscheint dann beim nächsten Mal wieder. Hast du noch keinen Hinweis bestätigt, ist der Knopf gesperrt.
Sprache
oPBWeb kennt zwei Oberflächensprachen: Deutsch und Englisch. Es gibt zwei Wege, die Sprache zu wechseln, die sich in ihrer Wirkung unterscheiden.
| Wo? | Wirkung | Gilt bis |
|---|
| Standardsprache im Benutzermenü | wird in deinem Benutzerkonto gespeichert | dauerhaft, bei jeder Anmeldung und auf jedem Gerät |
| Umschalter DE/EN in der Kopfleiste | gilt nur in diesem Browser-Tab | zur nächsten Anmeldung |
Standardsprache festlegen
- Öffne das Benutzermenü.
- Klick in der Zeile Standardsprache auf DE oder EN.
Die Oberfläche wechselt sofort, und oPBWeb merkt sich die Sprache in deinem Konto. Nach jeder Anmeldung startet oPBWeb in dieser Sprache, auch an einem anderen Rechner oder Browser.
Sprache vorübergehend umschalten
Der Umschalter in der Kopfleiste zeigt die aktuelle Sprache (DE oder EN). Ein Klick schaltet auf die andere Sprache um. Das ist praktisch, wenn du kurz einen englischen Begriff nachsehen oder einem Kollegen etwas auf Englisch zeigen willst.
Die Umstellung gilt nur für den aktuellen Browser-Tab und bleibt auch beim Neuladen der Seite erhalten. Sobald du dich ab- und wieder anmeldest, gilt wieder deine Standardsprache.
Sprache auf der Anmeldeseite
Auch die Anmeldeseite hat einen Sprachumschalter. Vor der Anmeldung kennt oPBWeb dich noch nicht; es verwendet die zuletzt in diesem Browser genutzte Sprache oder, beim ersten Besuch, die Sprache deines Browsers. Nach der Anmeldung übernimmt oPBWeb deine Standardsprache.
Hinweis
Einige Texte bleiben auch in der englischen Oberfläche deutsch: die Beschreibungen der Befehle und Funktionen im Scripteditor (sie stammen aus dem deutschen opsi-script-Handbuch), Titel und Protokolle von Jobs, die vor Version 0.15.0 entstanden sind, und Texte, die opsiconfd unverändert liefert (z. B. HTTP-Fehler). Meldungen des Servers (Fehlermeldungen, Titel und Protokolle von Jobs, Details im Systemstatus) und die Diagnosen im Scripteditor erscheinen in der Sprache der Oberfläche.
Passwort ändern
Diese Funktion gibt es nur für lokale Konten, also Konten, die in oPBWeb selbst angelegt wurden.
- Öffne das Benutzermenü.
- Klick auf Passwort ändern.
- Gib dein Aktuelles Passwort ein.
- Gib das Neue Passwort ein und wiederhole es unter Neues Passwort wiederholen. Das neue Passwort muss mindestens 10 Zeichen lang sein.
- Klick auf Speichern.
Ist das Passwort zu kurz oder stimmen die beiden Eingaben nicht überein, zeigt der Dialog „Mindestens 10 Zeichen.“ bzw. „Die Passwörter stimmen nicht überein.“ an und Speichern bleibt gesperrt.
LDAP-Konten
Meldest du dich mit deinem Verzeichniskonto (LDAP, z. B. Active Directory) an, fehlt der Eintrag Passwort ändern. Dein Passwort änderst du dann wie gewohnt im Verzeichnis, etwa über Windows.
Hast du dein Passwort vergessen, wende dich an einen Administrator. Er kann dir ein neues Passwort setzen, siehe Benutzer und Rollen
.
Abmelden
Klick im Benutzermenü auf Abmelden. oPBWeb beendet deine Sitzung und zeigt wieder die Anmeldeseite. Eine vorübergehend umgeschaltete Sprache wird dabei verworfen.
Hell oder dunkel
Das Mond-Symbol in der Kopfleiste (Hell oder dunkel umschalten) wechselt zwischen heller und dunkler Darstellung. Solange du nichts auswählst, folgt oPBWeb der Einstellung deines Betriebssystems. Deine Wahl speichert der Browser; sie gilt also für diesen Browser, nicht für dein Konto.
Den Umschalter gibt es auch auf der Anmeldeseite und als Befehl in der Befehlssuche (Strg K).
Farben im Editor
Auf der Seite Mein Konto stellst du im Abschnitt Farben im Editor ein, wie der Editor aussieht und in welchen Farben er Dateien hervorhebt. Das gilt für alle Editoren in oPBWeb: Scripteditor, Snippets, die Quelltextansicht des control und die Dateien auf dem Depot. Die Einstellung gehört zu deinem Konto und gilt auf jedem Gerät, an dem du dich anmeldest.
So ist der Abschnitt aufgebaut:
- Hell / Dunkel: Für die helle und die dunkle Darstellung gibt es je eine eigene Einstellung. Die Seite zeigt zuerst den Modus, in dem oPBWeb gerade läuft. Der Editor verwendet immer die Farben des aktuellen Modus.
- Editor (erster Eintrag der Liste links): die Farben des Editors selbst, also Hintergrund, Text, Randspalte, Zeilennummern, aktuelle Zeile, Auswahl und Cursor. Sie gelten pro Modus für alle Dateitypen. Als Quelle wählst du Wie Standard-Schema (die Editorfarben der Vorlage, die unter Standard gewählt ist), Vorlage (die Editorfarben einer anderen Vorlage, unabhängig von den Syntaxfarben) oder Eigene Farben. In eigene übernehmen kopiert die gerade wirksamen Farben nach Eigene Farben; dort passt du einzelne Farben an.
- Dateitypen (darunter in der Liste): Standard (alle Dateitypen) legt die Syntaxfarben für jeden Dateityp ohne eigenes Schema und für Textdateien ohne Hervorhebung fest. Darunter stehen opsi-script, Shell / Batch, control, Inno Setup, AutoIt, PowerShell, INI / REG / INF, XML, YAML, JSON und Python. Hinter jedem Typ steht wie Standard oder eigenes Schema.
- Vorlage: oPBWeb bringt bekannte Farbschemata mit, als helle Vorlagen oPBWeb, opsi ScriptEditor (Farben und Schrift des alten opsi ScriptEditors), GitHub Light, Solarized Light, One Light, VS Code Light+ und Gruvbox Light, als dunkle Vorlagen oPBWeb, GitHub Dark, Solarized Dark, One Dark, VS Code Dark+, Gruvbox Dark, Monokai, Dracula und Nord. Jede Vorlage lässt sich in beiden Modi wählen, auch eine dunkle Vorlage in der hellen Darstellung.
- Syntax: die Farben der Sprachelemente, die der gewählte Dateityp kennt, z. B. Kommentar, Sektion, Schlüsselwort, Funktion, Zeichenkette und Variable. Mit F (fett) und K (kursiv) neben jeder Farbe legst du die Schrift des Elements fest.
- Vorschau: zeigt ein kurzes Beispiel des gewählten Dateityps in den eingestellten Farben. Unter Editor zeigt sie das opsi-script-Beispiel mit den Syntaxfarben des Standards.


Farben einstellen
- Wähl Hell oder Dunkel.
- Für die Farben des Editors selbst: Wähl links Editor und eine Quelle. Für eigene Farben wähl zuerst eine Vorlage, klick auf In eigene übernehmen und ändere dann einzelne Farben.
- Für die Syntaxfarben: Wähl links den Dateityp. Für alle Dateitypen auf einmal nimmst du Standard (alle Dateitypen).
- Bei einem einzelnen Dateityp: Setz den Haken Eigenes Schema für diesen Dateityp. Das eigene Schema startet mit den Farben des Standards.
- Wähl eine Vorlage.
- Ändere bei Bedarf einzelne Farben: Klick auf das Farbfeld oder gib den Farbwert als Hex-Wert ein, z. B.
#a31515. Schalte mit F und K fett und kursiv um. Ein geändertes Element bekommt den Knopf ↺, der wieder Farbe und Schrift der Vorlage einsetzt. - Klick auf Speichern.
Wechselst du die Vorlage eines Dateityps, verwirft oPBWeb die einzeln geänderten Farben und Schriften dieses Dateityps. Anpassungen zurücksetzen setzt alle Farben und Schriften des Dateityps auf die Vorlage zurück. Nimmst du den Haken Eigenes Schema für diesen Dateityp wieder heraus, gilt für den Dateityp wieder der Standard. Alle Farben zurücksetzen stellt nach einer Rückfrage für beide Modi die Editorfarben und die Syntaxfarben aller Dateitypen auf die Vorgaben von oPBWeb zurück. Auch das wird erst mit Speichern übernommen; Verwerfen stellt den zuletzt gespeicherten Stand wieder her.
Handbuch öffnen
Das Buch-Symbol in der Kopfleiste (Handbuch (neuer Tab)) öffnet dieses Handbuch in einem neuen Browser-Tab, und zwar in der aktuell eingestellten Oberflächensprache: bei Deutsch das deutsche, bei Englisch das englische Handbuch.
Navigation ein- und ausklappen
Die Aktivitätsleiste am linken Rand zeigt normalerweise nur Symbole; der Name eines Bereichs erscheint als Tooltip. Mit dem Symbol ☰ ganz links in der Kopfleiste (Menü mit Beschriftung ein-/ausklappen) blendest du die Beschriftungen ein, sodass neben jedem Symbol der Name steht. Ein weiterer Klick klappt die Leiste wieder ein.
Einen Überblick über die ganze Oberfläche gibt Erste Schritte
.