X9.cz xetupby X9.cz

Specifikace & anotace

Verze: 0.4 Datum: 2026-04-16 x9/xetup Status: aktivni vyvoj
OK hotovo, v provozu Must fix zname chyby, nutno opravit TODO naplanovano, nerealizovano Open otevrena otazka Warn potencialni problem New nova feature Future dlouhodoby plan
00 Admin ucet (adminx9) OK
Vytvorit lokalni ucet adminx9Hotovo
Pridat do skupiny AdministratorsHotovo
Skryt z login obrazovky (SpecialAccounts\UserList = 0)Hotovo
Heslo nevypirsi, uzivatel nesmeni hesloHotovo
Zadne heslo (aktualne nastavovano z config.json)Opraveno – prazdny SecureString, config.json heslo odstranen
FullName = "X9.cz s.r.o." (via ADSI)Opraveno – ADSI SetInfo() po vytvoreni uctu
Proc bez hesla: Ucet je skryty pred uzivateli, slouzi pouze MSP adminstraci. Heslo v config.json by bylo ulozene citelne.
01 Bloatware removal OK
AppX balicky – odstraneni pro vsechny uzivatele a provisionedRemove-AppxPackage -AllUsers + Remove-AppxProvisionedPackage
Zachovano: Microsoft.WindowsCalculatorZamerny vyjimek
Windows Capabilities (Fax, IE, OpenSSH, WMP, WordPad, …)Remove-WindowsCapability
Windows Optional Features (PS 2.0, MediaPlayback, Recall, …)Disable-WindowsOptionalFeature
02 Software (winget) OK
7-Zip (7zip.7zip)OK
Adobe Acrobat Reader 64-bit (Adobe.Acrobat.Reader.64-bit)OK
OpenVPN Connect (OpenVPNTechnologies.OpenVPNConnect)OK
Atera Agent installInvoke-WebRequest + msiexec /i /qn
Adobe PDF default: .pdf -> AcroRd32 po instalaciOK – UCPD stop/start kolem zápisu asociace
UCPD.sys (kernel driver, od Feb 2024) blokuje UserChoiceReseno: Stop-Service ucpd → HKCR zapis → Start-Service ucpd
Atera Agent URL:
https://x9.servicedesk.atera.com/api/utils/agent-install/windows/?cid=31&aeid=50b72e7113e54a63ac76b96c54c7e337
03 System Registry (HKLM) OK
Bypass NRO (OOBE\BypassNRO = 1)OK
Zakaz auto-instalace TeamsConfigureChatAutoInstall = 0
Zakaz Cloud Optimized ContentOK
Zakaz Widgets / News and InterestsOK
Hesla bez expirace (net accounts /maxpwage:UNLIMITED)OK
Casova zona: Central Europe Standard TimeOK
Zakaz GameDVROK
Edge – skryt First Run Experience + zakaz default browser promptHideFirstRunExperience=1, DefaultBrowserSettingEnabled=0
Edge policies – panel oblibeny, vyhledavac GoogleFavoritesBarEnabled=1, DefaultSearchProviderName=Google, ManagedSearchEngines
Edge policies – tlacitka zobrazit (Historie, Stahnout)DownloadsButtonEnabled=1, HistoryButtonEnabled=1
Edge policies – tlacitka skryt (Home, Kolekce, Split, Drop, Screenshot, Share, Zpetna vazba)HomeButtonEnabled=0, SplitScreenEnabled=0, EdgeEDropEnabled=0, WebCaptureEnabled=0, ShareAllowed=0, FeedbackSurveysEnabled=0, EdgeCollectionsEnabled=0
Edge policies – obsah a telemetrieNewTabPageContentEnabled=0, ShowRecommendationsEnabled=0, EdgeShoppingAssistantEnabled=0, DiagnosticData=0, …
OneDrive uninstall (intentional)OneDriveSetup.exe /uninstall – odstrani pre-installed verzi. M365 si nainstaluje vlastni.
Powercfg nastaveni (spotreba energie)standby-ac 0, monitor-ac 60, standby-dc 30, monitor-dc 15
Proxy auto-detect zakaz (AutoDetect = 0)HKLM\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings
Edge nova karta – zakaz rychlych odkazuNewTabPageQuickLinksEnabled = 0
Edge nova karta – zakaz pozadiNewTabPageBackgroundEnabled = 0
Edge nova karta – zakaz obsahu / feeduNewTabPageAllowedBackgroundTypes = 3 (pouze plna barva)
04 Default Profile (NTUSER.DAT) OK
Taskbar: zarovnat vlevo (TaskbarAl = 0)Win11 default je center
Taskbar: skryt Search, Copilot, Task View, Widgets, ChatOK
Taskbar: zobrazit vsechny ikonky v tray (Scheduled task)ShowAllTrayIcons
Taskbar: explicitni pinlist (TaskbarLayoutModification.xml)default/user: Pruzkumnik + Edge; admin: Pruzkumnik + Edge + PowerShell. PinListPlacement="Replace" – prazdny seznam by dovoloval Windows pridat Store a dalsi vychozi.
Explorer: zobrazovat pripony souboru (HideFileExt = 0)OK
Explorer: otevrit na This PC (LaunchTo = 1)OK
Start menu: vyprazdnit piny (Win11)ConfigureStartPins = {"pinnedList":[]}
Start menu: zakaz Bing vyhledavaniDisableSearchBoxSuggestions = 1
Copilot: zakaz (TurnOffWindowsCopilot = 1)OK
NumLock zapnout pri startu (InitialKeyboardIndicators = 2)OK
Accent barva na titulnich listech (ColorPrevalence = 1)OK
OneDrive RunOnce klic je tady – smazatOpraveno – blok odstranen ze scriptu (brani reinstalaci pres M365)
Explorer: ShowRecent = 0, ShowFrequent = 0Skryt nedavne a caste soubory v Quick Access
Explorer: FullPath = 1 (CabinetState)Zobrazovat plnou cestu v titulku okna Explorera
Metoda: reg load HKU\DefaultProfile C:\Users\Default\NTUSER.DAT → zapsat zmeny → reg unload HKU\DefaultProfile.
Tato operace musi probihat PRED prvnim prihlasenim uzivatele. Aktualne prihlaseny uzivatel dostava zmeny pres primy zapis do HKCU.
05 Personalizace (barvy, tapeta) OK
System tema (taskbar, Start): DarkOK
Aplikacni tema: LightOK
Accent barva: #223B47 (tmave modroseda)OK
Accent barva na Start a taskbaru: anoOK
Pruhlednost: vypnutaOK
Tapeta: jednobarevna #223B47 (bez obrazku)BackInfo prepise tapetu svym BMP
Wallpaper="" v default hive (oprava cerne tapety)Bez tohoto klice novy uzivatel zdedi neplatnou cestu k tapete a dostane cernou plochu. Prazdny retezec = solid barva z Control Panel\Colors\Background
BackInfo.exe (STEP 07) prepise tapetu BMP se systemovymi informacemi. Jednobarevna tapeta je fallback pro pripad, ze BackInfo nedobehne nebo se nespusti.
06 Scheduled Tasks OK
ShowAllTrayIcons – pri logonu + kazdou 1 minWin11 automaticky skryva tray ikony
UnlockStartLayout – jednou po aplikaci layoutuOdemkne Start menu pro uzivatelske zmeny
PDF-DefaultApp pri kazdem logonu – odstranenPDF asociace nastavena jednou v kroku 02 (UCPD stop/start). Task nebyl nutny.
07 BackInfo (systemovy info na tapete) OK
07-desktop-info.ps1 SMAZAT – stary pristupNahrazeno novym 07-backinfo.ps1
Zkopirovat assets/Backinfo/ do C:\Program Files\Backinfo\Implementovano v 07-backinfo.ps1
Spustit backinfo_W11.ps1 (detekce OS, registry, Startup)Logika inlinovana v 07-backinfo.ps1
BackInfo.exe v assets/Backinfo/ k dispoziciHotovo
BackInfo auto-start pri kazdem logonu via Startup shortcutShortcut do ProgramData\StartUp vytvori 07-backinfo.ps1
BackInfo.ini konfiguruje: hostname (velky, centrovan), uzivatelske jmeno, OS verze, HW info (CPU, RAM, disk), sitove informace (IP, hostname).

Proc BackInfo misto vlastniho PS: BackInfo.exe podporuje Win10 i Win11 bez specialnich hacku, je stabilni a uz je v assets.
08 Windows aktivace OK Open
OA3 BIOS/UEFI klic – kontrola embedded keyWMI: SoftwareLicensingService.OA3xOriginalProductKey
Klic z config.json (activation.productKey)OK – priorita nad OA3 a GVLK
Fallback na GVLK (KMS client key) dle edice OSOK
Volitelny KMS server (activation.kmsServer)OK
Preskocit pokud jiz aktivovanoOK
Typ klice: MAK vs KMS vs retail?Zavisi na klientovi – otevrena otazka
09 PC identita – Rename + C:\X9 OK
Rename-Computer dle parametru z GUI nebo config.jsondeployment.pcName v config.json; preskoci pokud neni nastaveno
Nastavit popis pocitace (Computer Description)LanmanServer\Parameters\SrvComment; default "X9 deployment"
Vytvorit C:\X9\ adresarovou strukturuC:\X9\Logs, Scripts, Assets
Vlastni ikonka pro C:\X9\ slozkuDesktop.ini + X9-ikona.ico z assets\Logo\
Rename-Computer vyzaduje restart. Tento krok bezi jako posledni pred finalnim shrnutim – po nem nasleduje automaticky odpocet a restart v GUI.
10 Network discovery + firewall OK
Nastavit sitovy profil jako Private (ne Public)Set-NetConnectionProfile pro vsechny pripojene adaptery
Povolit ping (ICMP) pro diagnostikuEnable-NetFirewallRule: FPS-ICMP4-ERQ-In + FPS-ICMP6-ERQ-In
Zapnout Network Discovery pro Private profilSet-NetFirewallRule + netsh advfirewall jako fallback
11 Dell Command | Update OK
Detekce Dell hardware (Win32_ComputerSystem)Non-Dell stroj krok preskoci bez chyby – stejny skript pro vsechny HW
Instalace Dell Command | Update via wingetDell.CommandUpdate.Universal – silent, Win10 + Win11
Spusteni vsech aktualizaci: drivery, firmware, BIOSdcu-cli.exe /applyUpdates -silent -reboot=disable
BIOS/firmware se staging – dokonci se pri restartuRestart na konci deploymetu vse dokonci
Non-Dell stroje: krok se preskoci automaticky, zadna chyba. Dell Latitude, OptiPlex, Precision, Vostro, XPS – vsechny podporovane DCU Universal.

Casova narocnost: 5–20 minut podle poctu dostupnych aktualizaci a rychlosti sitoveho pripojeni.
12 Windows Update OK
Instalace NuGet providera + PSWindowsUpdate modulu ze PSGalleryInstall-PackageProvider + Install-Module PSWindowsUpdate -Force
Prvni pruchod aktualizaci (bez rebootu)Install-WindowsUpdate -AcceptAll -IgnoreReboot
X9-WindowsUpdate scheduled task – pokracovani po restartuBezi pri kazdem logonu jako SYSTEM; po pruchodu bez novych update se task sam smaze
Automaticky restart po skonceni deploymetu (GUI odpocet)xetup.exe zobrazi 60s odpocet + tlacitka "Restartovat ted" / "Zrusit restart"
Windows Update typicky vyzaduje vice restartovacich kolu. Prvni pruchod probehne behem deploymetu, dalsi kola zaridti scheduled task, ktery se po dokonceni sam odregistruje.

Pozor: Prvni restart spusti jak Windows Update task, tak Dell firmware staging (krok 11).
04+ Taskbar pinned apps (profily) OK Open
-ProfileType parametr: default / admin / userParametr GUI nebo config.json; predano do skriptu 04
XML layout pro "default" a "user": Pruzkumnik + EdgePinListPlacement="Replace" – explicitni seznam zamezuje pridani Store a dalsich vychozich appek
XML layout pro "admin": Pruzkumnik + Edge + PowerShellTaskbarLayoutModification.xml; PowerShell.lnk z System32
Win11 24H2 kompatibilita layoutu24H2 vyzaduje ProvisionedLayoutModification.xml – nutno otestovat na realne instalaci
Layout se pri aplikaci zamkne. UnlockStartLayout task (krok 06) ho odemkne 5 min po startu, aby uzivatel mohl dale upravovat.
Arc xetup.exe – Go GUI (Walk / Win32) OK
Single binary (go:embed scripty + assets)embed.go + cmd/xetup/main.go; ~5 MB .exe, zadne externi zavislosti
Walk GUI – Win32 nativni ovladky, bez OpenGLFunguje na VMware ESXi / SVGA II (Fyne/OpenGL nefungovalo). internal/gui/gui.go
Formular: PC jmeno, popis, product key, profilFaze 1 – config form pred spustenim
Checklist kroku (on/off per-feature) + nacist / ulozit config.jsonTlacitka "Nacist config..." a "Ulozit config..." pro per-klient presety
Live log + prubehovy strip kroku (0–12)Barevne indikatory: · cekajici, ► bezici (modra), ✓ OK (zelena), ✗ chyba (cervena)
Summary s odpoctem a automatickym restartemFaze 3 – 60s odpocet, tlacitka "Restartovat ted" / "Zrusit restart"
UAC requireAdministrator (app.manifest + rsrc)Windows vyzada elevaci pri spusteni; ComCtl32 v6 + DPI awareness
PowerShell okno skryte na pozadiSysProcAttr.HideWindow = true; PS chyby filtrovane (At line:, CategoryInfo atd.)
Self-update: stahnout novou verzi z xetup.x9.cz/dlOverit hash pred spustenim
config.json: per-klient preset na USBJmeno PC prefix, SW seznam, klic – lezi vedle .exe
Struktura: cmd/xetup/, internal/config/, internal/gui/, internal/runner/

Go zavislosti: github.com/lxn/walk (Win32 GUI), golang.org/x/sys

Build: GOOS=windows GOARCH=amd64 go build -ldflags="-H windowsgui" ./cmd/xetup/
CI (Forgejo Actions) sestavi a publikuje automaticky pri kazdem push na main.
Arc spec.yaml – single source of truth Future
Popis vsech kroku: id, label, script, defaultxetup.exe cte spec.yaml pro TUI checklist
Pole "requires" (napr. activation vyzaduje productKey)TUI upozorni pokud chybi
Auto-generovana dokumentace z spec.yamlCI akce: spec.yaml → tato stranka
spec.yaml jako SSOT pro tuto stranku i deploy skriptyIdealni stav: stranka vzdy odpovida kodu
Navrh struktury spec.yaml:
steps: - id: admin-account label: "Admin account (adminx9)" script: 00-admin-account.ps1 default: true - id: activation label: "Windows activation" script: 08-activation.ps1 default: true requires: [productKey]
+ Novy pozadavek na automatizaci Pozadavky

Chcete automatizovat neco, co skript zatim neresi? Napiste pozadavek sem – ulozi se do repozitare. Technicky tym ho projde a zaradi do planu.

Nacitam pozadavky...