Installation auf Windows Server
Diese Anleitung richtet Bestell-Bar auf einem Windows Server ein, auf dem IIS und Microsoft SQL Server bereits installiert sind. Die kostenlose SQL Server Express-Edition genügt; höhere Editionen funktionieren genauso.
Voraussetzungen
- Windows Server mit eingerichteter IIS-Webserver-Rolle.
- Microsoft SQL Server (Express oder höher), idealerweise mit
SQL Server Management Studio oder
sqlcmdzur Verwaltung. - Administratorrechte auf dem Server.
- Die Anwendung "Bestell-Bar" und die Hilfe als zip-Archiv.
Programmpaket herunterladen
Das Paket steht unter www.bestell-bar.ch/download
bereit – eine Datei je Version, benannt nach der Versionsnummer
(z. B. bestell-bar-1.7.1.zip). Dieselben Links stehen auf der
Impressum-Seite der Anwendung bei den Release-Notes.
Neben jedem Archiv liegt eine Datei .sha256 mit der Prüfsumme. So lässt sich
nachweisen, dass das Archiv unverändert ist – die Lizenz erlaubt die Weitergabe nur
unverändert. Prüfen in PowerShell:
Get-FileHash .\bestell-bar-1.7.1.zip -Algorithm SHA256
Der ausgegebene Wert muss mit dem Inhalt der .sha256-Datei übereinstimmen.
Hinweis zu Windows SmartScreen: Das Programm ist nicht signiert. Beim ersten Start meldet Windows daher möglicherweise, der Computer sei geschützt worden. Über Weitere Informationen → Trotzdem ausführen lässt sich der Start fortsetzen.
Benötigte IIS-Rollendienste
Die reine Rolle Webserver (IIS) genügt nicht – für Bestell-Bar müssen zusätzlich diese Rollendienste installiert sein (Server-Manager → Rollen und Features hinzufügen, oder per PowerShell):
- Statischer Inhalt – liefert die CSS/JS/Bilder aus
wwwrootund die statischen Hilfe-Seiten (zwingend). - Standarddokument und HTTP-Fehler.
- HTTP-Umleitung – für die Weiterleitung von HTTP auf HTTPS.
- WebSocket-Protokoll – für die Live-Aktualisierung der Stations- und Auslieferungs-Boards (SignalR); ohne dieses Feature bleiben Boards ohne Neuladen stehen.
- Statische & dynamische Inhaltskomprimierung – für schnellere Antworten.
- IIS-Verwaltungskonsole – zum Einrichten von Website/Anwendungspool.
Auf einem Windows Server installiert dieser Befehl (als Administrator in PowerShell) alles Nötige:
Install-WindowsFeature -Name Web-Server, Web-Static-Content, Web-Default-Doc, `
Web-Http-Errors, Web-Http-Redirect, Web-WebSockets, Web-Stat-Compression, `
Web-Dyn-Compression, Web-Mgmt-Console -IncludeManagementTools
Benötigte SQL-Server-Features
Bei der Installation von SQL Server (Express oder höher) genügt für Bestell-Bar:
- Datenbankmodul-Dienste (Database Engine Services) – zwingend.
- Optional SQL Server Management Studio (SSMS, separater Download) zur
bequemen Verwaltung –
sqlcmdgenügt aber auch.
- Für die lokale Verbindung (
.bzw..\SQLEXPRESS) reichen die Standardprotokolle (Shared Memory / Named Pipes) – keine weitere Einrichtung nötig. - Liegt der SQL Server auf einem anderen Rechner, im
SQL Server-Konfigurations-Manager das TCP/IP-Protokoll aktivieren
und den Port (Standard
1433) in der Firewall freigeben. - Für eine SQL-Anmeldung (statt Windows-Authentifizierung, siehe Schritt 4) bei der Installation den gemischten Modus aktivieren.
Schritt 1: .NET Hosting Bundle installieren
- Das ASP.NET Core 10 Hosting Bundle von dotnet.microsoft.com herunterladen (Abschnitt ASP.NET Core Runtime → Hosting Bundle) und installieren. Es verbindet .NET mit dem IIS (ASP.NET-Core-Modul).
- Anschliessend in einer Administrator-Eingabeaufforderung
iisresetausführen (oder den IIS manuell neustarten).
Schritt 2: Anwendungsdateien ablegen
- Einen Ordner für die Anwendung anlegen, z. B.
D:\Sites\bestellbar. - Den kompletten Inhalt des zip-Archivs hineinkopieren
(
JKOrderManager.exe,appsettings.json,web.config,wwwrootusw.).
Schritt 3: IIS einrichten
- Im IIS-Manager einen neuen Anwendungspool anlegen, z. B. BestellBar, .NET-CLR-Version Kein verwalteter Code. Die Identität kann auf dem Standard (ApplicationPoolIdentity) bleiben (je nach Verbindung mit dem MS SQL Server).
- Eine Website (oder eine Anwendung unterhalb einer bestehenden Website,
z. B.
/bestellbar) anlegen: physischer Pfad = Ordner aus Schritt 2, Anwendungspool = BestellBar. Der Betrieb unter einem Unterpfad wird von Bestell-Bar vollständig unterstützt. - Eine HTTPS-Bindung mit Zertifikat einrichten (die QR-Codes und die Bestellseiten der Gäste setzen eine sichere Verbindung voraus).
Schritt 4: Datenbank anlegen und Rechte vergeben
- Eine leere Datenbank anlegen, z. B.
BestellBar:sqlcmd -S .\SQLEXPRESS -E -Q "CREATE DATABASE BestellBar"
(bei einer Standardinstanz-S .statt.\SQLEXPRESS). Die Tabellen erstellt die Anwendung beim ersten Start selbst. - Dem Konto des Anwendungspools Zugriff geben (empfohlen: Windows-Authentifizierung):
sqlcmd -S .\SQLEXPRESS -E -Q "CREATE LOGIN [IIS AppPool\BestellBar] FROM WINDOWS" sqlcmd -S .\SQLEXPRESS -E -d BestellBar -Q "CREATE USER [IIS AppPool\BestellBar] FOR LOGIN [IIS AppPool\BestellBar]; ALTER ROLE db_owner ADD MEMBER [IIS AppPool\BestellBar]"
Der Login-Name entspricht immerIIS AppPool\<Name des Anwendungspools>.
User Id=…;Password=… statt
Trusted_Connection=True eintragen.Schritt 5: appsettings.json anpassen
Die Datei appsettings.json im Anwendungsordner öffnen und anpassen:
{
"ConnectionStrings": {
"DefaultConnection": "Server=.\\SQLEXPRESS;Database=BestellBar;Trusted_Connection=True;TrustServerCertificate=True;MultipleActiveResultSets=true"
},
"Qr": { "Secret": "…langer Zufallswert…" },
"Encryption": { "Key": "…langer Zufallswert…" },
"Seed": {
"SuperAdminEmail": "admin@example.ch",
"SuperAdminPassword": "…starkes Passwort…",
"SuperAdminDisplayName": "Plattform-Administrator"
},
"Installation": { "Label": "" },
"Security": { "SuperAdminTwoFactorBypass": false },
"DataProtection": {
"KeyPath": "",
"ApplicationName": "",
"ProtectKeysWithDpapi": true
},
"Hosting": { "HttpsRedirectPort": 443 },
"RateLimits": {
"Enabled": true,
"Registration": { "Limit": 3, "WindowMinutes": 60 },
"Mail": { "Limit": 5, "WindowMinutes": 10 },
"Login": { "Limit": 10, "WindowMinutes": 5 },
"AnonymousMailTotal": { "Limit": 20, "WindowMinutes": 60 }
},
"Imprint": {
"Name": "Musterverein Zürich",
"AddressLines": [ "Musterstrasse 1", "8000 Zürich", "CH" ],
"Email": "info@musterverein.ch",
"Representative": "Vorname Nachname"
}
}
- DefaultConnection: Servername/Instanz und Datenbankname aus Schritt 4.
- Qr:Secret und Encryption:Key: je ein eigener, langer
Zufallswert (mindestens 32 Zeichen). Bequem erzeugen mit:
powershell -Command "[Convert]::ToBase64String([Security.Cryptography.RandomNumberGenerator]::GetBytes(48))"
- Seed: E-Mail und Passwort des ersten Plattform-Administrators (damit melden Sie sich nach der Installation an).
- Installation:Label (optional): Text wie
DemooderTest, der zur Kennzeichnung der Umgebung klein unter dem Schriftzug in der Menüleiste erscheint; leer = keine Anzeige. - Security:SuperAdminTwoFactorBypass: bleibt auf
false. Der Schalter ist der Notzugang für den Fall, dass der Plattform-Administrator seine Authenticator-App und seine Wiederherstellungscodes verliert – über ihm steht niemand, der zurücksetzen könnte (Vereins-Admins setzt ein anderer Vereins-Admin zurück). Siehe unten. - DataProtection (optional): Ablage der Sicherheitsschlüssel. Die Vorgaben passen für eine normale Installation – lassen Sie die Werte leer, wenn Sie keinen Grund für etwas anderes haben. Siehe unten.
- Hosting:HttpsRedirectPort: der öffentliche HTTPS-Port (in der Regel
443). Dann leitet die Anwendung eingehende HTTP-Anfragen selbst dorthin um. Für den Testbetrieb per Doppelklick muss der Wertnullbleiben. Siehe unten. - RateLimits (optional): Obergrenzen gegen Missbrauch von Registrierung, Anmeldung und E-Mail-Versand. Die Vorgaben reichen für den Normalbetrieb. Siehe unten.
- Imprint: Ihre Angaben als Betreiber dieser Installation –
sie erscheinen im Impressum, auf das die Datenschutzerklärung
verweist.
AddressLineswird zeilenweise ausgegeben, das Format ist also frei.Representativedarf leer bleiben, dann gilt der Name des Betreibers. Siehe unten. - Serilog: im Abschnitt
WriteToden Pfad der Logdatei auf einen Ordner zeigen lassen, in dem das Anwendungspool-Konto schreiben darf.
Impressum: Ihre eigenen Angaben
Bestell-Bar wird ohne Betreiberangaben ausgeliefert. Sobald Sie die Software selbst betreiben, sind Sie der Betreiber – und die öffentlichen Seiten Impressum und Datenschutz müssen Sie ausweisen, nicht den Hersteller.
Imprint:Name oder Imprint:Email, startet die Anwendung
ausserhalb der Entwicklungsumgebung nicht – gleich wie bei den nicht ersetzten
Platzhaltern oben. So kann keine Installation online gehen, die niemanden ausweist oder noch
fremde Angaben zeigt.Imprint werden sofort übernommen – die Datei speichern
genügt, ein Neustart der Anwendung ist nicht nötig.Nicht betroffen sind Lizenz und Copyright der Software weiter unten auf der Impressum-Seite: Die bleiben beim Hersteller, unabhängig davon, wer die Installation betreibt.
Sicherheitsschlüssel: wo sie liegen und warum das zählt
Die Anwendung verschlüsselt mit einem Schlüsselbund, was sie den Browsern mitgibt: die Anmelde-Cookies, die Schutzmarken der Formulare und die Token in den Links aus den Bestätigungs- und Passwort vergessen-E-Mails.
Standardmässig legt die Anwendung diesen Schlüsselbund unter
%ProgramData%\BestellBar\keys ab – also ausserhalb des
Anwendungsordners, damit ein Update ihn nicht mitlöscht. Beim Start schreibt sie den verwendeten
Pfad ins Log, dort können Sie ihn jederzeit nachsehen:
[INF] Data-Protection-Schlüssel: C:\ProgramData\BestellBar\keys (Installation 'BestellBar', DPAPI aktiv)
- Alle angemeldeten Benutzer sind abgemeldet.
- Gerade geöffnete Formulare lassen sich nicht mehr abschicken (Fehler
400), bis die Seite neu geladen wird. - Bereits versendete Bestätigungs- und Passwort-Links funktionieren nicht mehr – die Betroffenen müssen einen neuen anfordern.
Die drei Einstellungen brauchen Sie nur, wenn Sie bewusst abweichen wollen:
| Einstellung | Leer / Vorgabe | Wann ändern |
|---|---|---|
KeyPath |
%ProgramData%\BestellBar\keys |
Wenn die Schlüssel woanders liegen sollen, etwa auf einem gesicherten Laufwerk. Der Ordner muss ausserhalb des Anwendungsordners liegen und das Anwendungspool-Konto muss darin schreiben dürfen. |
ApplicationName |
BestellBar |
Wenn auf demselben Server mehrere Installationen laufen (z.B. Test neben Produktiv). Ohne eigenen Namen – oder eigenen Pfad – teilen sie sich die Schlüssel und damit die Anmeldungen. |
ProtectKeysWithDpapi |
true |
Die Schlüsseldateien werden an diesen Server gebunden verschlüsselt. Das ist richtig so: Wer die Dateien lesen kann, könnte sonst eine Anmeldung fälschen. Nur bei einem geplanten Serverumzug relevant – siehe Kasten. |
ProtectKeysWithDpapi: true sind die Schlüsseldateien auf einem anderen Server
unlesbar. Das ist kein Datenverlust: Alle melden sich einmal neu an, und offene Passwort-Links
müssen neu angefordert werden. Wollen Sie auch das vermeiden, setzen Sie den Wert
vor dem Umzug auf false, starten die Anwendung einmal neu und kopieren
den Ordner mit – schützen ihn dann aber mit Dateirechten.HTTPS erzwingen
Die Anwendung gehört hinter HTTPS. Die Anmelde-Cookies werden ausserhalb der
Entwicklungsumgebung ohnehin nur über eine verschlüsselte Verbindung gesendet – ruft jemand die
Seite über http:// auf, kann er sich also gar nicht erst anmelden.
Damit niemand auf einer unverschlüsselten Seite landet, richten Sie die Umleitung ein. Zwei Wege, die sich ergänzen:
- Im IIS – der übliche Weg: Der Website nur eine https-Bindung geben, oder bei zusätzlicher http-Bindung eine Umleitungsregel (URL Rewrite) auf https einrichten.
- In der Anwendung – als zweite Absicherung: unter
Hosting:HttpsRedirectPortden öffentlichen HTTPS-Port eintragen, meist443. Die Anwendung beantwortet eine HTTP-Anfrage dann mit einer Umleitung auf dieselbe Adresse unterhttps://.
[WRN] Die Anwendung leitet HTTP-Anfragen NICHT selbst auf HTTPS um (Hosting:HttpsRedirectPort ist leer). …Ist die Umleitung im IIS eingerichtet, können Sie die Warnung ignorieren.
http://localhost:5000
ohne HTTPS. Steht dort ein Port drin, leitet die Anwendung auf eine Adresse um, die
es nicht gibt – sie ist dann nicht mehr erreichbar. Für den Testbetrieb also
"HttpsRedirectPort": null.Nur ein Arbeitsprozess
Die Anwendung muss in einem einzigen Prozess laufen. Zwei Dinge hält sie im Speicher genau dieses Prozesses: die Live-Verbindungen zu den Stationsboards und den Zwischenspeicher der Artikelbilder; auch die Anfragebegrenzung zählt je Prozess.
Häufigste Ursache ist ein Anwendungspool mit mehreren Arbeitsprozessen (eine sogenannte Webgarten-Konfiguration). So prüfen Sie das:
- Im IIS-Manager Anwendungspools öffnen und den Pool auswählen.
- Rechts Erweiterte Einstellungen… anklicken.
- Unter Prozessmodell muss Maximale Anzahl von Arbeitsprozessen auf 1 stehen (das ist die Standardeinstellung).
Erkennt die Anwendung beim Start eine zweite laufende Instanz, schreibt sie eine Warnung ins Log:
[WRN] Es läuft bereits eine weitere Instanz dieser Installation ('BestellBar') auf diesem Rechner. …
Während eines Updates oder eines Neustarts kann diese Meldung kurz auftreten, weil der alte Prozess noch läuft – das ist normal. Erscheint sie im laufenden Betrieb, prüfen Sie den Anwendungspool.
Anfragebegrenzung: Schutz vor Missbrauch
Ein paar Stellen der Anwendung kann jeder aufrufen, ohne angemeldet zu sein – und sie bringen den Server dazu, etwas zu tun: einen Verein anzulegen oder eine E-Mail über Ihren SMTP-Server zu verschicken. Ohne Bremse könnte jemand damit tausende E-Mails in Ihrem Namen auslösen; darunter leidet vor allem der Ruf Ihrer Absenderadresse.
Die Anwendung begrenzt darum, wie oft diese Aktionen in einem Zeitfenster aufgerufen werden dürfen. Wer darüber liegt, bekommt die Seite Zu viele Anfragen und muss kurz warten.
| Einstellung | Vorgabe | Gilt für |
|---|---|---|
Registration | 3 pro Stunde | Selbstregistrierung eines Vereins über die Startseite. |
Mail | 5 pro 10 Minuten | Alles, was eine E-Mail verschickt: Test-E-Mail, Zugangslink an eine Station oder an den Service, Quittung an einen Gast, Rundmail an alle Vereine. |
Login | 10 pro 5 Minuten | Anmeldeversuche – zusätzlich zur Kontosperre, die nach 5 Fehlversuchen für 5 Minuten greift. Die Sperre zählt je Konto, diese Grenze je Absender. |
AnonymousMailTotal | 20 pro Stunde | Gesamtobergrenze für die zwei Wege, die ohne Anmeldung eine E-Mail auslösen (Registrierung und Passwort vergessen) – über die ganze Installation. Wirkt auch dann, wenn die Anfragen von vielen verschiedenen Adressen kommen. |
Alle Grenzen gelten je Absenderadresse und Zeitfenster; nur
AnonymousMailTotal zählt über alle zusammen. Limit ist die erlaubte
Anzahl, WindowMinutes die Länge des Zeitfensters. Beim Start schreibt die Anwendung
die geltenden Werte ins Log:
[INF] Anfragebegrenzung aktiv: Registrierung 3/60min, E-Mail 5/10min, Anmeldung 10/5min, anonymer Mailversand gesamt 20/60min
"Enabled": false schalten Sie die Begrenzung
ganz ab – sinnvoll nur, wenn die Installation ohnehin nicht öffentlich erreichbar ist.Notzugang für den Plattform-Administrator
Kommt der Plattform-Administrator wegen der Zwei-Faktor-Authentifizierung nicht mehr hinein, gehen Sie so vor:
- In der
appsettings.json"SuperAdminTwoFactorBypass": truesetzen und speichern. Ein Neustart ist nicht nötig – die Datei wird sofort neu eingelesen. - Mit E-Mail und Passwort anmelden; der Code wird für dieses eine Konto übersprungen.
- Unter Mein Konto die 2FA mit dem Passwort deaktivieren und bei Bedarf neu einrichten.
- Den Schalter wieder auf
falsesetzen.
appsettings.json auf dem Server nur für Administratoren les- und
schreibbar ist.Qr:Secret, Encryption:Key oder das Seed-Passwort auf den
mitgelieferten Beispielwerten, verweigert die Anwendung ausserhalb der Entwicklungsumgebung
absichtlich den Start. Und: Wird Encryption:Key später geändert,
werden bereits gespeicherte SMTP-Passwörter unlesbar und müssen neu erfasst werden.Schritt 6: Hilfe-Seite einbinden
- Den Ordner der Hilfe-Seite ausserhalb des Anwendungsordners ablegen,
z. B.
D:\Sites\bestellbar-help. - Im IIS-Manager unterhalb der Bestell-Bar-Anwendung ein virtuelles Verzeichnis
mit Alias
helpanlegen, das auf diesen Ordner zeigt.
Damit funktioniert der Hilfe-Link im Seitenfuss der Anwendung, und die Seite bleibt bei Anwendungs-Updates unangetastet.
Schritt 7: Erster Start
- Die Website im Browser aufrufen. Beim ersten Start legt die Anwendung die
Datenbanktabellen an und erstellt das Administrator-Konto aus dem
Seed-Abschnitt (das kann einige Sekunden dauern). - Mit dem Seed-Konto Anmelden.
- Unter dem Zahnrad-Menü Administration → System-SMTP den zentralen E-Mail-Versand konfigurieren (Voraussetzung für Selbstregistrierung und «Passwort vergessen»).
- Unter Vereine den ersten Verein samt Vereins-Admin anlegen – oder die Selbstregistrierung auf der Startseite nutzen.
Updates einspielen
- Datenbank sichern.
- Anwendungspool BestellBar stoppen.
- Anwendungsdateien durch die neue Version ersetzen –
appsettings.jsonundweb.configdabei behalten (vorher sichern). - Anwendungspool wieder starten. Nötige Datenbank-Anpassungen führt die Anwendung beim Start automatisch aus.
DataProtection:KeyPath einen eigenen Pfad gesetzt,
achten Sie darauf, dass er weiterhin ausserhalb liegt.Nur zum Testen: direkt starten (Konsole)
Dieselbe JKOrderManager.exe lässt sich auch direkt starten – per
Doppelklick oder aus der Eingabeaufforderung. Es öffnet sich ein Konsolenfenster, und die Anwendung
ist unter http://localhost:5000 erreichbar (ohne IIS).
- Einen anderen Port wählen Sie mit dem Schalter
--urls:JKOrderManager.exe --urls http://localhost:8080
- Beenden: Fenster schliessen oder Strg+C drücken.
- Es gilt dieselbe
appsettings.jsonwie im IIS-Betrieb – die Platzhalter aus Schritt 5 müssen also auch hier ersetzt sein. - Das Konsolenfenster bleibt fast leer – das ist normal: protokolliert werden nur Warnungen und Fehler (die Logdatei aus dem Serilog-Abschnitt wird trotzdem geschrieben).
Alternativer Betrieb: als Windows-Dienst
Statt im IIS kann dieselbe Anwendung auch als Windows-Dienst laufen – praktisch, wenn auf dem Server kein IIS gewünscht ist. Der reguläre Weg bleibt der IIS-Betrieb.
- Dienst anlegen (Eingabeaufforderung als Administrator; das Leerzeichen nach
binPath=gehört zur Syntax vonsc.exe):sc.exe create BestellBar binPath= "D:\Sites\bestellbar\JKOrderManager.exe --urls http://localhost:5000" start= auto sc.exe description BestellBar "Bestell-Bar Web-Anwendung"
- Dienstkonto festlegen und diesem – wie in Schritt 4 – Zugriff auf die Datenbank geben.
Ohne Angabe läuft der Dienst als LocalSystem:
sc.exe config BestellBar obj= "DOMAIN\dienstkonto" password= "…"
- Starten bzw. stoppen:
sc.exe start BestellBar sc.exe stop BestellBar
- Wieder entfernen (vorher stoppen):
sc.exe delete BestellBar
- Der Dienst startet automatisch mit dem Server und wird von Windows nach einem Absturz neu gestartet (Wiederherstellungsoptionen in den Diensteigenschaften).
- Das Dienstkonto braucht Schreibrechte auf den Log-Ordner aus dem
Serilog-Abschnitt der
appsettings.json. - Für Updates den Dienst stoppen, Dateien ersetzen (
appsettings.jsonbehalten), Dienst wieder starten.
Wenn es nicht läuft
| Symptom | Prüfen |
|---|---|
| HTTP-Fehler 500.30, Anwendung startet nicht | Meist sind die Platzhalter in der appsettings.json nicht ersetzt
(siehe Schritt 5). Für die genaue Fehlermeldung JKOrderManager.exe
testweise direkt in einer Eingabeaufforderung im Anwendungsordner starten oder in
die Windows-Ereignisanzeige schauen. |
| HTTP-Fehler 500.19 oder «Handler»-Fehler | Das .NET Hosting Bundle fehlt oder wurde vor dem IIS installiert –
(erneut) installieren und iisreset ausführen. |
| Datenbankfehler beim Start | Connection String prüfen (Instanzname!); hat das Anwendungspool-Konto die Rechte aus Schritt 4? |
| Hilfe-Link zeigt «404» | Ist das virtuelle Verzeichnis help aus Schritt 6 eingerichtet? |
| Keine Logdatei | Serilog-Pfad in der appsettings.json prüfen; darf das
Anwendungspool-Konto dort schreiben? |
| Stationsboards aktualisieren sich nicht mehr von selbst | Läuft der Anwendungspool mit mehr als einem Arbeitsprozess? Siehe Nur ein Arbeitsprozess. Im Log steht in dem Fall eine entsprechende Warnung. |
| Seite Zu viele Anfragen beim Anmelden oder beim E-Mail-Versand | Die Anfragebegrenzung hat zugeschlagen. Kurz warten –
oder, wenn viele Benutzer über dieselbe Internet-Adresse zugreifen, die Werte unter
RateLimits erhöhen. |
| Benutzer werden immer wieder abgemeldet, oder Formulare lassen sich nicht abschicken | Der Schlüsselbund wird nicht dauerhaft gespeichert. Im Log den Pfad nachsehen
(Zeile Data-Protection-Schlüssel) und prüfen, ob das
Anwendungspool-Konto in diesem Ordner schreiben darf – siehe
Sicherheitsschlüssel. |