- C# 100%
- New "extra content" option copies files/folders into the installed system's C:\ root (folder "Tools" -> C:\Tools). For install modes it copies onto the applied volume; for build-iso it uses sources\$OEM$\$1 so Setup places it at C:\. - Drivers (.inf) and extra content are now shared across Windows To Go, dual-boot and build-iso — a normal install already bakes in drivers/content/debloat/apps, so "build + install" happens in one step without a separate ISO. - Engine: WimService.AddDriversAsync (dism /Add-Driver /Recurse on offline image), ProvisioningService.CopyContentAsync (recursive files/folders), UnattendOptions.AllOff + UseConfigurationSet in HasAnything so $OEM$ is processed even without other tweaks. - GUI: shared "Драйверы (.inf)" and "Доп. файлы/папки -> C:\" fields with folder pickers; removed the ISO-tab-only Drivers field. CLI: --drivers / --content. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| EasyWin.Cli | ||
| EasyWin.Core | ||
| EasyWin.Wpf | ||
| .gitignore | ||
| EasyWin.slnx | ||
| LICENSE | ||
| README.md | ||
EasyWin
Кастомный установщик Windows. Цель — перестать тратить часы на установку и настройку: разворачивать заранее настроенную, «чистую» Windows одним действием, с нужными программами и вырезанной телеметрией.
Написан на C# (.NET 10). Движок оркестрирует штатные системные утилиты
(dism, bcdboot, diskpart) — тот же подход, что и у Rufus (его исходник лежит
в rufus/ для справки по последовательности Windows To Go).
Структура
src/
EasyWin.Core/ — движок (библиотека, UI-агностичный)
Diagnostics/ — ProcessRunner, логирование
Models/ — PhysicalDisk, WimEdition, DiskPartition
Services/ — DiskService, IsoService, WimService, DiskPartitioner,
BootService, PartitionService
Unattend/ — UnattendBuilder (autounattend.xml: приватность/деблоат/автонастройка)
Provisioning/ — ProvisioningService (payload на носитель)
Apps/ — AppSpec, AppProvisioner (тихая установка приложений при первом входе)
WinToGo/ — WinToGoInstaller (стирает диск целиком)
DualBoot/ — DualBootInstaller (установка на один раздел, не трогая остальные)
IsoBuild/ — IsoBuilder (кастомный auto-install ISO)
EasyWin.Cli/ — консольный драйвер (easywin.exe)
EasyWin.Wpf/ — графический интерфейс (EasyWinGui.exe, WPF/MVVM)
GUI
Графическая версия — проект EasyWin.Wpf (EasyWinGui.exe). Запускать от админа.
dotnet build EasyWin.slnx -c Debug
# затем запустить из повышенной сессии:
.\src\EasyWin.Wpf\bin\Debug\net10.0-windows\EasyWinGui.exe
Вкладки: Windows To Go, Установка на раздел (dual-boot), Создать раздел, Сборка ISO. Сверху — общий выбор ISO/редакции/диска; снизу — раскрывающийся блок настройки Windows (приватность, деблоат, обход Win11, O&O ShutUp10, приложения) и живой лог с прогресс-баром. Деструктивные действия требуют подтверждения.
Сборка
dotnet build EasyWin.slnx -c Debug
Использование
CLI требует прав администратора (манифест requireAdministrator).
Запускать из повышенной консоли:
# --- Просмотр (безопасно, только чтение) ---
easywin list-disks # диски + флаги безопасности
easywin list-editions --iso "C:\easywin\win11 iot ltsc.iso"
easywin list-partitions --disk 1 # раскладка разделов диска
# --- Windows To Go (СТИРАЕТ ДИСК ЦЕЛИКОМ) ---
easywin wintogo --iso "C:\easywin\win11 iot ltsc.iso" --disk 1 --edition 1 `
--tweaks --user Nikita --oosu-cfg "C:\my\ooshutup.cfg" `
--apps-file "C:\my\apps.txt"
# По умолчанию: приватность/деблоат, внутренние диски offline (SanPolicy=4), WinRE off.
# --- Dual-boot: установка на ОДИН раздел, не трогая остальные ---
easywin install-partition --iso "...iso" --disk 1 --partition 3 --format-target `
--tweaks --user Nikita
# --format-target форматировать ТОЛЬКО целевой раздел (если не пуст)
# --replace-existing-os перезаписать \Windows на целевом разделе
# --- Кастомный auto-install ISO ---
easywin build-iso --iso "...iso" --out "C:\out\custom.iso" --tweaks --user Nikita `
--remove-appx Xbox,Bing --bypass11
# --- Просто сгенерировать файл ответов ---
easywin gen-unattend --user Nikita --san-offline --out autounattend.xml
Общие флаги кастомизации (для wintogo/install-partition/build-iso/gen-unattend):
--tweaks --user --password --timezone --bypass11 --no-privacy --keep-onedrive --keep-bloat --allow-encryption --san-offline --oosu-cfg --oosu-exe --payload --apps --apps-file. --verbose — показать вывод diskpart/dism/bcdboot.
⚠️ Безопасность
wintogoполностью стирает целевой диск.- Движок никогда не трогает диск с флагами
SYSTEM/BOOT. - Не-съёмные (внутренние) диски заблокированы без
--allow-internal. - Всегда требуется подтверждение (интерактивно или
--yes). - Для разработки/тестов используйте отдельную флешку или VHD, не рабочий диск.
Статус
MVP: Windows To Go — разметка GPT (ESP+MSR+Windows) → применение WIM → bcdboot.
Работает и протестирован путь перечисления дисков/защиты. Установку запускать под админом.
Полная дорожная карта — в ROADMAP.md.