# Xetup – Specifikace automatizovaného nastavení Windows 10/11

> **Účel:** Eliminovat ~3 hodiny ručního nastavování nových Windows stanic pro klienty X9.cz  
> **Cíl:** Jeden PowerShell skript spustitelný z admina, výsledek uložen v Default Profile (aplikuje se všem budoucím uživatelům)  
> **Repo:** `C:\x9\xetup`  
> **Vstup:** Parametrizovaný spouštěč – název PC, doména (volitelná), typ profilu (admin/user)

---

## 1. Struktura adresářů

```
C:\X9\
├── install\
│   ├── Backinfo\
│   ├── flash2\
│   ├── atera-agent\
│   ├── 7zip.exe
│   ├── AdobeReader.exe
│   └── OpenVPNConnect.exe
├── X9-ikona.ico
└── X9-logo.jpg
```

**Kroky:**
- [ ] Vytvořit `C:\X9` a `C:\X9\install`
- [ ] Stáhnout z Nextcloudu: Backinfo, Atera agent, Flash2, ikonu X9, logo X9
- [ ] Stáhnout z internetu: 7-zip, Adobe Reader, OpenVPN Connect
- [ ] Roztřídit soubory do správných adresářů dle výše

> **Automatizace:** `Invoke-WebRequest` pro stažení + `Copy-Item` pro přesun. Nextcloud vyžaduje autentizaci – credentials parametrem nebo uloženým tokenem.

---

## 2. Přizpůsobení – Pozadí a barvy (Default Profile)

Všechna nastavení ukládat do `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes` + Default Profile hive (`C:\Users\Default\NTUSER.DAT`).

| Nastavení | Hodnota |
|---|---|
| Typ pozadí | Plná barva |
| Barva pozadí | `#223B47` |
| Barevný režim | Vlastní |
| Režim Windows | Tmavý |
| Režim aplikací | Světlý |
| Barva motivu | Ruční – `#223B47` |
| Barva v Start menu | Zapnuto |
| Barva v záhlavích oken | Zapnuto |

**Registry klíče (NTUSER.DAT / Default Profile):**
```
HKCU\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize
  - AppsUseLightTheme = 1 (DWORD)
  - SystemUsesLightTheme = 0 (DWORD)
  - ColorPrevalence = 1 (DWORD)

HKCU\Control Panel\Desktop
  - Wallpaper = "" (prázdný string = plná barva)
  - WallpaperStyle = 0

HKCU\Control Panel\Colors
  - Background = "34 59 71"  (RGB hodnota #223B47)
```

> **Poznámka:** Barvu motivu (`AccentColor`) nastavit přes `HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Accent` – hodnota `AccentColorMenu` = `0xFF3B2322` (ABGR formát).

---

## 3. Přizpůsobení – Motivy (ikony na ploše)

- [ ] Zobrazit ikonu **Tento počítač** na ploše

```registry
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel
  - {20D04FE0-3AEA-1069-A2D8-08002B30309D} = 0 (DWORD)  ; Tento počítač
```

> Aplikovat do Default Profile hive.

---

## 4. Hlavní panel (Taskbar)

| Nastavení | Hodnota |
|---|---|
| Vyhledávací pole | Skryto |
| Zobrazení úkolů (Task View) | Vypnuto |
| Widgety | Vypnuto |
| Zarovnání (uživatel) | Vlevo |
| Zarovnání (admin) | Na střed |
| Systémové ikony (overflow) | Vše viditelné |

**Registry (Win11):**
```registry
HKCU\Software\Microsoft\Windows\CurrentVersion\Search
  - SearchboxTaskbarMode = 0 (DWORD)  ; skrýt hledání

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
  - ShowTaskViewButton = 0 (DWORD)
  - TaskbarAl = 0 (DWORD)  ; 0=vlevo, 1=střed

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People
  - PeopleBand = 0 (DWORD)

HKLM\SOFTWARE\Policies\Microsoft\Windows\Windows Feeds
  - EnableFeeds = 0 (DWORD)  ; widgety
```

**Viditelnost systémových ikon (overflow area):**
```registry
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer
  - EnableAutoTray = 0 (DWORD)  ; zobrazit vše, nevracet do přetečení
```

> **Problém:** Automatické zobrazení VŠECH budoucích ikon (nový SW po instalaci) nelze 100% garantovat přes registry – `EnableAutoTray=0` je nejbližší řešení. Individuální ikony aplikací závisí na tom, co si každá aplikace sama zapíše.

---

## 5. Připnutí složky X9 na hlavní panel

- [ ] Složce `C:\X9` nastavit vlastní ikonu (`X9-ikona.ico`)
- [ ] Připnout na panel rychlého spuštění (Quick Access / Taskbar)

```powershell
# Nastavení vlastní ikony složky (desktop.ini)
$iniPath = "C:\X9\desktop.ini"
Set-Content $iniPath "[.ShellClassInfo]`nIconResource=C:\X9\X9-ikona.ico,0`n[ViewState]`nMode=`nVid=`nFolderType=Generic"
attrib +s +h $iniPath
attrib +s "C:\X9"

# Připnutí na taskbar – vyžaduje Shell COM objekt nebo workaround přes VBScript
```

> **Upozornění:** Připnutí složky na taskbar je v moderním Win11 omezené – Microsoft tuto možnost odstranil. Alternativa: připnout jako Quick Access v Průzkumníku nebo vytvořit shortcut na ploše.

---

## 6. Profil účtu – avatar

- [ ] Nahrát `X9-logo.jpg` jako profilový obrázek admin účtu

```powershell
$accountPicPath = "$env:APPDATA\Microsoft\Windows\AccountPictures"
New-Item -ItemType Directory -Force -Path $accountPicPath
Copy-Item "C:\X9\X9-logo.jpg" "$accountPicPath\X9-logo.jpg"
# Nastavit jako výchozí profilový obrázek přes registry
```

> **Scope:** Toto platí jen pro aktuální (admin) účet, nikoliv Default Profile – je to záměr.

---

## 7. Napájení

| Nastavení | Hodnota |
|---|---|
| Spánek při napájení ze sítě | Nikdy |
| Vypnutí obrazovky (síť) | 1 hodina |
| Vypnutí obrazovky (baterie) | 15 minut |
| Spánek na baterii | 1 hodina |
| Zavření víka | Neautomatizovat |

```powershell
powercfg /change standby-timeout-ac 0       # nikdy - síť
powercfg /change monitor-timeout-ac 60      # 60 min - síť
powercfg /change monitor-timeout-dc 15      # 15 min - baterie
powercfg /change standby-timeout-dc 60      # 60 min - baterie
```

---

## 8. Síť – Proxy server

- [ ] Vypnout automatické zjišťování nastavení proxy

```registry
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings
  - AutoDetect = 0 (DWORD)

HKLM\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings
  - AutoDetect = 0 (DWORD)
```

---

## 9. Přejmenování počítače

```powershell
param([string]$NewName)
Rename-Computer -NewName $NewName -Force -Restart
```

> Restart je nutný. Připojení do domény probíhá zvlášť přes stejné rozhraní – není součástí tohoto skriptu (volitelný parametr `-Domain`).

---

## 10. Odinstalace bloatware

Aktuálně řešeno přes **Flash2** – integrovat volání Flash2 instalačky nebo zachovat jako samostatný krok.

Alternativně vlastní seznam přes winget/AppX:

```powershell
# Příklady AppX balíčků k odebrání (rozšířit dle potřeby)
$bloatware = @(
    "Microsoft.BingWeather",
    "Microsoft.GetHelp",
    "Microsoft.Getstarted",
    "Microsoft.MicrosoftSolitaireCollection",
    "Microsoft.People",
    "Microsoft.WindowsFeedbackHub",
    "Microsoft.Xbox.TCUI",
    "Microsoft.XboxApp",
    "Microsoft.ZuneMusic",
    "Microsoft.ZuneVideo"
)
foreach ($app in $bloatware) {
    Get-AppxPackage -Name $app -AllUsers | Remove-AppxPackage -AllUsers -ErrorAction SilentlyContinue
    Get-AppxProvisionedPackage -Online | Where-Object DisplayName -like $app | Remove-AppxProvisionedPackage -Online -ErrorAction SilentlyContinue
}
```

> `Remove-AppxProvisionedPackage` zajistí, že se bloatware neobjeví ani novým uživatelům (Default Profile).

---

## 11. Nastavení uživatelského profilu (Default Profile)

Klíčový mechanismus: **načíst `C:\Users\Default\NTUSER.DAT` jako dočasný hive**, aplikovat registry změny, odpojit hive.

```powershell
reg load "HKU\DefaultUser" "C:\Users\Default\NTUSER.DAT"
# ... zde všechny Set-ItemProperty operace s cestou HKU:\DefaultUser\...
reg unload "HKU\DefaultUser"
```

> Tímto způsobem se veškerá nastavení (barvy, taskbar, Edge, atd.) aplikují všem budoucím uživatelům při prvním přihlášení.

---

## 12. Instalace SW

| Aplikace | Zdroj | Metoda |
|---|---|---|
| 7-Zip | Internet / winget | `winget install 7zip.7zip` |
| Adobe Reader | Internet / winget | `winget install Adobe.Acrobat.Reader.64-bit` |
| OpenVPN Connect | Internet / winget | `winget install OpenVPNTechnologies.OpenVPNConnect` |
| Atera Agent | Nextcloud (`C:\X9\install`) | MSI silent install |
| Backinfo | Nextcloud (`C:\X9\install`) | PS skript |

```powershell
winget install --id 7zip.7zip --silent --accept-package-agreements --accept-source-agreements
winget install --id Adobe.Acrobat.Reader.64-bit --silent --accept-package-agreements --accept-source-agreements
winget install --id OpenVPNTechnologies.OpenVPNConnect --silent --accept-package-agreements --accept-source-agreements
```

---

## 13. Backinfo

```powershell
Copy-Item "C:\X9\install\Backinfo" "C:\Program Files\Backinfo" -Recurse
Set-ExecutionPolicy Unrestricted -Force
& "C:\Program Files\Backinfo\backinfo_W11.ps1"
Set-ExecutionPolicy Restricted -Force
```

> Backinfo zapíše do registru verzi W11 a nastaví autostart po přihlášení.

---

## 14. MS Edge – nastavení

Nastavit přes registry (platí pro všechny uživatele pokud aplikováno do Default Profile nebo HKLM).

| Nastavení | Hodnota |
|---|---|
| Ochrana sledování | Striktní (`2`) |
| Panel oblíbených | Vždy zobrazit |
| Výchozí vyhledávač | Google |
| Tlačítka panelu nástrojů | Historie, Aplikace, Stažené soubory, Výkon |

```registry
HKLM\SOFTWARE\Policies\Microsoft\Edge
  - TrackingPrevention = 3 (DWORD)          ; Striktní
  - FavoritesBarEnabled = 1 (DWORD)         ; Oblíbené vždy
  - DefaultSearchProviderEnabled = 1
  - DefaultSearchProviderName = "Google"
  - DefaultSearchProviderSearchURL = "https://www.google.com/search?q={searchTerms}"

; Toolbar tlačítka – individuální nastavení přes Edge policy nebo NTUSER.DAT
```

> **Poznámka:** Edge nastavení přes GPO/registry mají přednost před uživatelskými preferencemi. Pro Default Profile alternativně upravit `%LOCALAPPDATA%\Microsoft\Edge\User Data\Default\Preferences` šablonou – méně spolehlivé.

---

## 15. Spouštěč – parametry hlavního skriptu

```powershell
# Deploy-Windows.ps1
param(
    [Parameter(Mandatory=$true)]
    [string]$ComputerName,
    
    [string]$Domain = "",          # prázdné = pracovní skupina
    
    [ValidateSet("admin","user")]
    [string]$TaskbarAlign = "user", # admin=střed, user=vlevo
    
    [string]$NextcloudUrl = "",
    [string]$NextcloudUser = "",
    [string]$NextcloudPass = ""
)
```

---

## Otevřené otázky / TODO

- [ ] Jak řešit stahování z Nextcloudu bez interaktivního přihlášení? (token vs. credentials parametr)
- [ ] Flash2 – integrovat nebo volat jako subprocess?
- [ ] Atera Agent – silent install parametry MSI?
- [ ] Přejmenování PC + připojení do domény jako jeden průchod nebo dva samostatné kroky?
- [ ] Testování: Win10 vs Win11 – některé registry klíče se liší (hlavně Taskbar)
- [ ] Složka X9 na Taskbaru – Win11 nepodporuje připnutí složky; nahradit shortcutem na ploše?

---

## Architektura spuštění (navržená)

```
irm https://xetup.x9.cz/setup.ps1 | iex
    └── Stáhne Deploy-Windows.ps1 z repa
    └── Vyzve na parametry (nebo převezme z CLI)
    └── Spustí Deploy-Windows.ps1 -ExecutionPolicy Bypass
        ├── 1. Vytvoří adresáře
        ├── 2. Stáhne soubory (Nextcloud + web)
        ├── 3. Odinstaluje bloatware (AppX + Flash2)
        ├── 4. Nainstaluje SW (winget)
        ├── 5. Aplikuje registry do Default Profile (reg load/unload)
        ├── 6. Nastaví napájení
        ├── 7. Nastaví proxy
        ├── 8. Spustí Backinfo
        ├── 9. Přejmenuje PC
        └── 10. Restart
```
