Blaupausen je Kunde, Datei-Uploads, RDP-Verknuepfungen, Bloatware-Entfernung
- Blaupausen (blueprints\) mit Kunde/Beschreibung, gruppierte Ansicht, Duplizieren/Export, Schnellauswahl auf der Uebersicht, 2 Beispiele - Upload von Setups (EXE/MSI/MSIX/PS1/CMD) per Drag & Drop inkl. gespeicherter Silent-Parameter; Upload von Icons und .rdp-Dateien - RDP-Verknuepfungen fuer alle Benutzer: Generator (Gateway, RemoteApp, Umleitungen) oder hochgeladene .rdp-Dateien - Bloatware-Tab: Store-Apps, Hersteller-Tools, Testversionen, vorinstalliertes Office/OneNote (C2R) und OneDrive entfernen; Katalog in config/bloatware.json, auch als Schritt in Blaupausen - Fix: Top-Level-JSON-Arrays (Vorlagen) wurden falsch serialisiert Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
+94
-21
@@ -15,15 +15,16 @@
|
||||
<a data-tab="apps">Programme</a>
|
||||
<a data-tab="office">Office</a>
|
||||
<a data-tab="shortcuts">Desktop-Icons</a>
|
||||
<a data-tab="bloatware">Bloatware</a>
|
||||
<a data-tab="system">System & Sicherheit</a>
|
||||
<a data-tab="power">Energie</a>
|
||||
<a data-tab="bitlocker">BitLocker</a>
|
||||
<a data-tab="updates">Updates & Treiber</a>
|
||||
<a data-tab="profiles">Profile</a>
|
||||
<a data-tab="profiles">Blaupausen</a>
|
||||
<a data-tab="jobs">Aufgaben <b id="jobBadge" class="badge hidden">0</b></a>
|
||||
</nav>
|
||||
<div class="side-foot">
|
||||
<div id="profileName" class="muted">Profil: (ungespeichert)</div>
|
||||
<div id="profileName" class="muted">Blaupause: (ungespeichert)</div>
|
||||
<button class="ghost" id="btnShutdown">Agent beenden</button>
|
||||
</div>
|
||||
</aside>
|
||||
@@ -35,9 +36,14 @@
|
||||
<div id="sysinfo" class="grid4"></div>
|
||||
<div class="card">
|
||||
<h2>Komplette Einrichtung mit einem Klick</h2>
|
||||
<p class="muted">Führt die Einstellungen aus allen Tabs in sinnvoller Reihenfolge aus. Vorher in den Tabs konfigurieren oder ein Profil laden.</p>
|
||||
<p class="muted">Blaupause wählen (oder in den Tabs selbst konfigurieren) und starten. Alle Einstellungen werden in sinnvoller Reihenfolge ausgeführt.</p>
|
||||
<div class="row">
|
||||
<label class="f">Blaupause / Kunde<select id="bpQuick"><option value="">– aktuelle Konfiguration –</option></select></label>
|
||||
</div>
|
||||
<p id="bpQuickDesc" class="muted small"></p>
|
||||
<div class="checks" id="steps">
|
||||
<label><input type="checkbox" value="system" checked> System</label>
|
||||
<label><input type="checkbox" value="bloatware"> Bloatware</label>
|
||||
<label><input type="checkbox" value="security" checked> Sicherheit</label>
|
||||
<label><input type="checkbox" value="power" checked> Energie</label>
|
||||
<label><input type="checkbox" value="apps" checked> Programme</label>
|
||||
@@ -71,12 +77,20 @@
|
||||
<div id="catalog"></div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h2>Eigene Installer vom Stick <span class="muted small">(Ordner <code>installers\</code>)</span></h2>
|
||||
<div class="row">
|
||||
<select id="localFile"></select>
|
||||
<input id="localArgs" placeholder="Silent-Parameter, z.B. /S oder /quiet">
|
||||
<button id="btnAddLocal">Hinzufügen</button>
|
||||
</div>
|
||||
<h2>Eigene Installer <span class="muted small">(EXE, MSI, MSIX, PS1, CMD – Ordner <code>installers\</code>)</span></h2>
|
||||
<label class="drop" id="instDrop">
|
||||
<input type="file" id="instFile" multiple accept=".exe,.msi,.msix,.msixbundle,.appx,.appxbundle,.ps1,.cmd,.bat" hidden>
|
||||
<b>Setup-Dateien hierher ziehen</b> oder klicken zum Auswählen
|
||||
<span class="muted small">Die Dateien werden auf den Stick hochgeladen und stehen in allen Blaupausen zur Verfügung.</span>
|
||||
</label>
|
||||
<div id="uploadProgress" class="muted small"></div>
|
||||
<div id="localList" class="list"></div>
|
||||
<p class="muted small">Silent-Parameter (Vorschläge):
|
||||
<code class="hint" data-hint="/S">/S</code> NSIS ·
|
||||
<code class="hint" data-hint="/VERYSILENT /SUPPRESSMSGBOXES /NORESTART">/VERYSILENT …</code> Inno Setup ·
|
||||
<code class="hint" data-hint="/quiet /norestart">/quiet /norestart</code> WiX/Burn ·
|
||||
<code class="hint" data-hint="/s /v"/qn"">/s /v"/qn"</code> InstallShield ·
|
||||
MSI: <code>/qn</code> wird automatisch gesetzt</p>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
@@ -161,12 +175,48 @@
|
||||
<div>
|
||||
<div class="card">
|
||||
<h2>Neue Verknüpfung</h2>
|
||||
<label class="f">Typ<select id="scType"><option value="url">Webseite (URL)</option><option value="lnk">Programm / Datei / Ordner</option></select></label>
|
||||
<label class="f">Name<input id="scName" placeholder="z.B. Intranet"></label>
|
||||
<label class="f">Ziel<input id="scTarget" placeholder="https://… oder %ProgramFiles%\…\app.exe"></label>
|
||||
<label class="f lnkonly">Argumente<input id="scArgs"></label>
|
||||
<label class="f">Icon <span class="muted small">(Ordner <code>icons\</code> auf dem Stick oder Pfad)</span>
|
||||
<input id="scIcon" list="iconList" placeholder="optional"></label>
|
||||
<label class="f">Typ<select id="scType">
|
||||
<option value="url">Webseite (URL)</option>
|
||||
<option value="lnk">Programm / Datei / Ordner</option>
|
||||
<option value="rdp">Remotedesktop (RDP)</option></select></label>
|
||||
<label class="f">Name<input id="scName" placeholder="z.B. Intranet, Terminalserver"></label>
|
||||
<label class="f t-url t-lnk">Ziel<input id="scTarget" placeholder="https://… oder %ProgramFiles%\…\app.exe"></label>
|
||||
<label class="f t-lnk">Argumente<input id="scArgs"></label>
|
||||
<div class="t-rdp">
|
||||
<label class="f">Quelle<select id="rdpSource"><option value="">Neu konfigurieren</option></select></label>
|
||||
<div id="rdpForm">
|
||||
<div class="row">
|
||||
<label class="f" style="flex:3">Server / Host<input id="rdpHost" placeholder="ts01.firma.local"></label>
|
||||
<label class="f" style="flex:1">Port<input id="rdpPort" type="number" placeholder="3389"></label>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="f">Benutzer (optional)<input id="rdpUser" placeholder="FIRMA\benutzer"></label>
|
||||
<label class="f">RD-Gateway (optional)<input id="rdpGateway" placeholder="gw.firma.de"></label>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="f">RemoteApp-Alias (optional)<input id="rdpRemoteApp" placeholder="z.B. DATEV"></label>
|
||||
<label class="f">Audio<select id="rdpAudio"><option value="local">auf diesem PC</option><option value="remote">auf dem Server</option><option value="none">aus</option></select></label>
|
||||
</div>
|
||||
<div class="checks">
|
||||
<label><input type="checkbox" id="rdpFullscreen" checked> Vollbild</label>
|
||||
<label><input type="checkbox" id="rdpMultimon"> Alle Monitore</label>
|
||||
<label><input type="checkbox" id="rdpClipboard" checked> Zwischenablage</label>
|
||||
<label><input type="checkbox" id="rdpPrinters" checked> Drucker</label>
|
||||
<label><input type="checkbox" id="rdpDrives"> Laufwerke</label>
|
||||
<label><input type="checkbox" id="rdpSmartcards"> Smartcards</label>
|
||||
<label><input type="checkbox" id="rdpMicrophone"> Mikrofon</label>
|
||||
<label><input type="checkbox" id="rdpCamera"> Kamera</label>
|
||||
<label><input type="checkbox" id="rdpAdmin"> Admin-Sitzung</label>
|
||||
</div>
|
||||
<label class="f" style="margin-top:10px">Weitere RDP-Zeilen (optional)<textarea id="rdpExtra" rows="2" placeholder="z.B. session bpp:i:32"></textarea></label>
|
||||
<details><summary class="muted small">Vorschau der .rdp-Datei</summary><pre id="rdpPreview" class="code"></pre></details>
|
||||
</div>
|
||||
<p class="muted small">Vorhandene .rdp-Dateien hochladen:
|
||||
<label class="button small">.rdp hochladen<input type="file" id="rdpUpload" accept=".rdp" multiple hidden></label></p>
|
||||
</div>
|
||||
<div class="f t-url t-lnk"><label class="f" for="scIcon" style="margin:0">Icon <span class="muted small">(aus <code>icons\</code> oder Pfad)</span></label>
|
||||
<div class="row" style="margin-top:3px"><input id="scIcon" list="iconList" placeholder="optional">
|
||||
<label class="button">.ico hochladen<input type="file" id="iconUpload" accept=".ico,.exe,.dll" hidden></label></div></div>
|
||||
<datalist id="iconList"></datalist>
|
||||
<div class="row">
|
||||
<button class="primary" id="btnScCreate">Sofort anlegen</button>
|
||||
@@ -192,6 +242,24 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Bloatware -->
|
||||
<section id="tab-bloatware" class="tab">
|
||||
<h1>Bloatware entfernen</h1>
|
||||
<div class="card">
|
||||
<div class="row wrap" style="margin-top:0">
|
||||
<button id="btnBloatScan">↻ Gerät scannen</button>
|
||||
<button id="btnBloatRec">Empfohlene auswählen</button>
|
||||
<button id="btnBloatNone" class="ghost">Keine</button>
|
||||
<span class="sep"></span>
|
||||
<button class="primary" id="btnBloatRemove">Ausgewählte entfernen</button>
|
||||
</div>
|
||||
<label class="checks" style="margin-top:12px"><input type="checkbox" data-bind="bloatware.recommended">
|
||||
<span>In der Blaupause: <b>alle empfohlenen</b> Einträge entfernen (plus die manuell angehakten, minus die abgewählten). So funktioniert die Blaupause auch auf anderen Geräten und bei anderen Herstellern.</span></label>
|
||||
<p class="muted small">Gefunden werden Store-Apps (für alle Benutzer + Vorlage für neue Benutzer), Hersteller-Tools, Testversionen, vorinstallierte Office/OneNote-Versionen (Click-to-Run, z. B. „Microsoft 365 – fr-fr“) und OneDrive. Katalog erweiterbar in <code>config\bloatware.json</code>.</p>
|
||||
</div>
|
||||
<div id="bloatList"><div class="card muted">Noch nicht gescannt.</div></div>
|
||||
</section>
|
||||
|
||||
<!-- System & Sicherheit -->
|
||||
<section id="tab-system" class="tab">
|
||||
<h1>System & Sicherheit</h1>
|
||||
@@ -311,15 +379,20 @@
|
||||
|
||||
<!-- Profile -->
|
||||
<section id="tab-profiles" class="tab">
|
||||
<h1>Profile</h1>
|
||||
<h1>Blaupausen</h1>
|
||||
<p class="muted">Eine Blaupause speichert die komplette Einrichtung (Programme, Office, Icons, RDP, Sicherheit, Energie, BitLocker, Schritte), zum Beispiel als Standard für einen Kunden. Ablage: <code>blueprints\</code> auf dem Stick.</p>
|
||||
<div class="cols">
|
||||
<div class="card">
|
||||
<h2>Gespeicherte Profile <span class="muted small">(Ordner <code>profiles\</code>)</span></h2>
|
||||
<div id="profileList" class="list"></div>
|
||||
<div>
|
||||
<div class="row" style="margin:0 0 12px"><input id="bpFilter" placeholder="Kunde oder Blaupause suchen …"></div>
|
||||
<div id="profileList"></div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card sticky">
|
||||
<h2>Aktuelle Konfiguration speichern</h2>
|
||||
<div class="row"><input id="profileSaveName" placeholder="z.B. Buero-Standard"><button class="primary" id="btnProfileSave">Speichern</button></div>
|
||||
<label class="f">Kunde<input id="bpCustomer" list="bpCustomers" placeholder="z.B. Müller GmbH"></label>
|
||||
<datalist id="bpCustomers"></datalist>
|
||||
<label class="f">Name der Blaupause<input id="profileSaveName" placeholder="z.B. Büro-Notebook, Außendienst"></label>
|
||||
<label class="f">Beschreibung<textarea id="bpDescription" rows="3" placeholder="optional – Hinweise für Techniker"></textarea></label>
|
||||
<div class="row"><button class="primary" id="btnProfileSave">Speichern</button><button id="btnProfileSaveAs">Als neue Blaupause</button></div>
|
||||
<h3>Import / Export</h3>
|
||||
<div class="row">
|
||||
<button id="btnExport">Als JSON exportieren</button>
|
||||
|
||||
Reference in New Issue
Block a user