W-Fix — компактная WPF-утилита для системных администраторов и продвинутых пользователей Windows, которая автоматически диагностирует и устраняет типичные проблемы с принтерами.
Вместо ручного ковыряния в реестре, PowerShell и журналах событий — всё в один клик.
Portable. Один
.exeфайл, без установки. Носи на флешке.
| # | Фиксер | Ошибка | Что делает |
|---|---|---|---|
| 1 | Перезапуск Spooler | 0x00000008, spooler |
Стоп → очистка очереди → старт |
| 2 | Error 0x0000011b | RPC Auth |
Патч реестра RpcAuthnLevelPrivacyEnabled (KB5005565) |
| 3 | Error 0x00004005 | Ops failed | RPC + Point&Print + брандмауэр + SMB |
| 4 | Error 0x00000709 | Default printer | Права реестра HKCU + WScript.Network |
| 5 | Error 0x00000002 | File not found | Очистка prtprocs + PendingFileRename + P&P |
| 6 | Error 0x0000007e | DLL missing | Копирование mscms.dll + удаление BIDI-ключа |
| 7 | Error 0x0000007b | Invalid name | Удаление повреждённого драйвера + очистка spool |
| 8 | Error 0x00000008 | Not enough memory | Диагностика памяти + очистка temp |
| 9 | IPP Fixer | 0xbcb, 0xbcc |
Windows Feature + IPP Class Driver + порт 631 |
| 10 | Сетевая диагностика | Network / DNS | Ping / DNS / TCP-порты (read-only) |
| 11 | Переустановка драйвера | 0x0000007b, driver |
INF / UNC / Авто (с диалогом выбора) |
| 12 | Принтер по умолчанию | Default printer | Сброс реестра + SetDefaultPrinter |
- 🌐 Remote Repair Center v3 — несколько доменных ПК, preflight, инвентаризация, автоматический план, проверка и изолированный rollback
- 🔗 Pair Repair Wizard v3.1 — ремонт общего принтера между двумя ПК: TLS pairing, общий диагноз, двусторонний rollback и offline fallback
- 🧠 Диагностические правила — вывод по наблюдаемым фактам, уверенность и официальный источник известной проблемы
- 🔐 Credential Manager — альтернативная доменная учётная запись без пароля в конфигурации, CLI или логах
- 📊 Отчёты — JSON/HTML для каждого запуска и обезличенный ZIP support bundle
- 🌐 Удалённые машины — системные шаги через WinRM, а пользовательские настройки принтера — в реальном интерактивном сеансе
- 🔍 Обнаружение принтеров — CIM / WMI / Get-Printer (тройной fallback)
- 📋 Полный лог — каждый шаг фиксера отображается в реальном времени
- ↩️ Точечный откат — снимок изменяемых ключей реестра и кнопка восстановления после фикса
- 🗂 Active Directory — обзор принтеров в домене
- Скачай
W-Fix.exeиз раздела Releases - Запусти от имени администратора (правой кнопкой → «Запуск от имени администратора»)
- Выбери принтер в левой панели
- Выбери фиксер в правой панели → нажми «Применить»
Для нескольких компьютеров открой Remote Center:
- Добавь имена вручную либо через поиск Active Directory.
- Выполни Preflight — ping носит справочный характер, рабочее подключение определяется по WinRM.
- Запусти Диагностику, проверь факты и сформированный план.
- Подтверди пакетный ремонт. Сбой одной машины не останавливает остальные; обратимые шаги неуспешной цели откатываются.
Если общий принтер подключён к другому ПК, открой Pair Repair на обеих машинах. Хост создаёт одноразовый .wfixpair, оба пользователя сверяют код, а клиент формирует и выполняет общий план. Подробная инструкция: Pair Repair на русском / English guide.
⚠️ Права администратора обязательны — фиксеры изменяют реестр и службы Windows.
- Windows 10/11 x64
- .NET 8 SDK
git clone https://github.com/OneDeadMachine-Dev/W-FIX.git
cd W-Fix
dotnet run --project src/W-Fix.Appdotnet publish src/W-Fix.App/W-Fix.App.csproj `
-c Release -r win-x64 --self-contained true `
-p:PublishSingleFile=true `
-p:IncludeAllContentForSelfExtract=true `
-p:EnableCompressionInSingleFile=true `
-o ./publishРезультат: publish/W-Fix.exe (~90 МБ, полностью автономный).
W-Fix/
├── src/
│ ├── W-Fix.Core/ # Бизнес-логика
│ │ ├── Abstractions/ # Контракты сессии, диагностики, ремонта и отчётов
│ │ ├── Remote/ # WinRM preflight и инвентаризация
│ │ ├── Diagnostics/ # Evidence-based правила
│ │ ├── Repair/ # Планировщик, legacy-адаптер и batch executor
│ │ ├── Pairing/ # TLS pairing, SMB/RPC diagnostics и двухузловая saga
│ │ ├── Catalog/ # Подписанный каталог Windows known issues
│ │ ├── Fixers/ # 12 фиксеров (FixerBase → IFixer)
│ │ ├── Services/
│ │ │ ├── WmiService.cs # Обнаружение принтеров (CIM/WMI/PS)
│ │ │ ├── PowerShellEngine.cs # Встроенный PS SDK + внешний fallback
│ │ │ ├── InteractiveUserPowerShellService.cs # Remote-команды в сеансе пользователя
│ │ │ ├── SystemStateBackupService.cs # Снимок реестра + restore.ps1
│ │ │ └── FixerRegistry.cs # Регистрация и поиск фиксеров
│ │ └── Models/ # PrinterInfo, FixResult, LogEntry ...
│ └── W-Fix.App/ # WPF UI (MVVM + CommunityToolkit)
│ ├── ViewModels/
│ ├── RemoteCenterWindow.xaml
│ ├── PairRepairWindow.xaml
│ ├── Views/
│ └── Assets/icon.ico
└── publish/W-Fix.exe # Готовый портативный файл
Стек: WPF · .NET 8 · ModernWpfUI · CommunityToolkit.Mvvm · PowerShell SDK · Serilog
Подробности внутренних границ, выполнения PowerShell и правил для фиксеров: docs/architecture.md.
Работа с новым центром: docs/remote-center.md. Формат и подпись базы проблем: docs/known-issues-catalog.md.
| Компонент | Минимум |
|---|---|
| ОС | Windows 10 1903+ / Windows 11 |
| Архитектура | x64 |
| .NET Runtime | Встроен (self-contained) |
| Права | Администратор |
| PowerShell | 5.1+ (встроен в Windows) |
MIT © 2026 OneDeadMachine