# Пошаговое руководство: как включить скрытые функции Windows 11 заранее с помощью ViVeTool

> AI Release · @ai_release1 · https://ai-release.org/guides/poshagovoe-rukovodstvo-kak-vklyuchit-skrytye-funktsii-w.html

## TL;DR
- Время выполнения: 25–40 минут (включая одну перезагрузку и откат при необходимости)
- Уровень сложности: Intermediate
- Понадобится: Windows 11 (x64 или ARM64), учётная запись с правами администратора, PowerShell 5.1+, архив ViVeTool из официального репозитория проекта, заранее выписанный список Feature ID (числовых идентификаторов функций), файл-журнал для фиксации изменений

Главное, чего нет в типовых инструкциях: ViVeTool не «дописывает» код в Windows, а переключает флаги уже присутствующих в системе функций. Поэтому половина «не работает» — это не ошибка команды, а отсутствие кода функции в вашей сборке или необходимость серверного включения. Ниже — процедура с журналом отката и проверкой на каждом шаге.

## Требования и подготовка
![Иллюстрация к разделу «Требования и подготовка»](https://ai-release.org/guides/img/poshagovoe-rukovodstvo-kak-vklyuchit-skrytye-funktsii-w-ru-1.jpg?v=1794473918)

- Windows 11 с известной вам сборкой (номер сборки понадобится, чтобы потом понять, не сломало ли её обновление). Зафиксируйте её до всех действий.
- Права администратора: ViVeTool пишет в защищённые разделы реестра, без повышения прав команда завершится отказом в доступе.
- Архив ViVeTool (release-сборка под вашу архитектуру, x64 или ARM64) из репозитория проекта. Распакуйте, например, в `C:\Tools\ViVeTool\` — путь без пробелов и кириллицы избавит от лишних кавычек в командах.
- Список Feature ID. Идентификаторы и их назначение сверьте с документацией репозитория ViVeTool и профильными трекерами сборок — в этом гайде намеренно нет конкретных ID: они меняются от сборки к сборке, а неверный ID просто ничего не сделает.
- Включённая защита системы на диске `C:\` (без неё точку восстановления создать нельзя).
- Если ваша сборка заметно отстаёт от актуальной, сначала обновитесь — на старом билде нужного кода функции может физически не быть. Порядок действий описан в гайде [Как обновить Windows 11 с 24H2 до 26H2, если обновление не приходит](https://ai-release.org/guides/kak-obnovit-windows-11-s-24h2-do-26h2-esli-obnovlenie-n.html?utm_source=tg&utm_medium=channel&utm_campaign=guide_inline&utm_content=guide_to_guide).

Чек-лист готовности:

- [ ] Проверена сборка Windows и архитектура (`x64`/`ARM64`)
- [ ] Есть права администратора
- [ ] ViVeTool распакован в `C:\Tools\ViVeTool\`
- [ ] Выписаны 1–3 Feature ID с описанием, что именно они включают
- [ ] Включена защита системы и создана точка восстановления
- [ ] Заведён файл-журнал (таблица ниже) для записи каждого изменения

## Шаг 1. Инвентаризация: версия системы, точка отката, журнал

**Что сделать:** зафиксируйте версию Windows, создайте точку восстановления и заведите журнал изменений.

**Зачем:** любая экспериментальная функция может привести к нестабильному Проводнику или панели задач. Точка восстановления и журнал дают откат за одну команду и позволяют понять, что именно вы включили неделю назад.

**Как проверить:** команда должна вернуть вашу редакцию, версию и номер сборки.

```powershell
$os = Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion'
"{0} {1} (build {2}.{3})" -f $os.ProductName, $os.DisplayVersion, $os.CurrentBuild, $os.UBR
[Environment]::Is64BitOperatingSystem
```

**Пример вывода:**

```
Windows 11 Pro <версия> (build <CurrentBuild>.<UBR>)
True
```

Числа берутся из вашей системы — перепишите строку вывода в журнал, это ваша «базовая линия».

Проверка прав администратора (должно вернуться `True`; если `False` — перезапустите PowerShell через «Запуск от имени администратора»):

```powershell
([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole('Administrators')
```

Точка восстановления:

```powershell
Enable-ComputerRestore -Drive "C:\"
Checkpoint-Computer -Description "Before ViVeTool" -RestorePointType MODIFY_SETTINGS
Get-ComputerRestorePoint | Select-Object -Last 1
```

**Пример вывода:** строка с `Description: Before ViVeTool` и вашей датой.

Почему это работает: `Checkpoint-Computer` снимает снимок системных файлов и реестра через службу теневого копирования; откат вернёт и флаги, которые вы переключите дальше.

Журнал изменений (веди его в `C:\Tools\vivetool-log.md`):

| Дата | Feature ID | Команда | Состояние по `/query` до | Что появилось в UI | Откат выполнен |
|---|---|---|---|---|---|
| 2025-01-01 | `<ID>` | `/enable /id:<ID>` | Disabled | не проверено | нет |

## Шаг 2. Ключевой процесс: включение функции и перезагрузка

**Что сделать:** проверьте текущее состояние функции, включите её и перезагрузитесь.

**Зачем:** `/query` до изменения — единственный способ отличить «функция не включилась» от «функция уже была включена». Перезагрузка нужна потому, что значения дочитываются при старте оболочки и системных служб.

**Как проверить:** `/query` после перезагрузки показывает изменённое состояние.

```powershell
cd C:\Tools\ViVeTool
.\ViVeTool.exe /?
```

Первым делом посмотрите справку: набор параметров (`/store`, `/notify`, `/priority` и т.п.) отличается между версиями утилиты — доступные флаги сверьте с выводом `/?`.

Запрос и включение:

```powershell
.\ViVeTool.exe /query /id:<ID-функции>
.\ViVeTool.exe /enable /id:<ID-функции>
shutdown /r /t 0
```

**Пример:** вы хотите включить функцию с ID `12345678` — тогда вторая команда выглядит так: `.\ViVeTool.exe /enable /id:12345678`, а перед ней стоит выполнить `.\ViVeTool.exe /query /id:12345678`, чтобы увидеть исходное состояние.

Если в вашей версии утилиты есть флаг `/store:boot`, он задаёт применение флага на этапе загрузки — это полезно для функций, которые читаются слишком рано. Наличие флага проверяйте по `/?`.

**Где это НЕ работает (проверьте до перезагрузки):**

- Сборка не содержит кода функции. ViVeTool переключает флаг, но не скачивает бинарники. Симптом: `/query` показывает изменение состояния, а в интерфейсе ничего не меняется.
- Функция включена на стороне сервиса (A/B-тест поставщика) и требует авторизации или региона. Локальный флаг её не «поднимет».
- Функция привязана к лицензии или редакции Windows — на вашей редакции она не активируется.
- Функция уже включена по умолчанию: `/query` вернёт состояние `Enabled` ещё до вашей команды.

Откат одной функции:

```powershell
.\ViVeTool.exe /disable /id:<ID-функции>
shutdown /r /t 0
```

Полный сброс всех изменений, сделанных утилитой:

```powershell
.\ViVeTool.exe /fullreset
shutdown /r /t 0
```

## Шаг 3. Проверка результата и фиксация
![Иллюстрация к разделу «Шаг 3. Проверка результата и фиксация»](https://ai-release.org/guides/img/poshagovoe-rukovodstvo-kak-vklyuchit-skrytye-funktsii-w-ru-3.jpg?v=1794473936)


**Что сделать:** подтвердите состояние флага, проверьте функцию в интерфейсе и запишите результат в журнал.

**Зачем:** состояние флага и фактическое поведение — разные вещи. Первое подтверждает, что команда сработала, второе — что функция работоспособна на вашей сборке.

**Как проверить:** две независимые проверки ниже должны совпасть с ожиданием.

```powershell
.\ViVeTool.exe /query /id:<ID-функции>
$os = Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion'
"build {0}.{1}" -f $os.CurrentBuild, $os.UBR
```

**Пример вывода:**

```
[12345678] <название функции> (Enabled)
build <CurrentBuild>.<UBR>
```

Вторая команда нужна как контроль: номер сборки не изменился с базовой линии, значит перезагрузка не притянула обновление, которое могло сбросить флаги.

Что должно появиться на экране: элемент интерфейса или новое поведение, которое вы описали в журнале заранее (например, конкретный пункт в «Параметры»). Точный путь в меню зависит от функции — сверьтесь с документацией к её ID. Если флаг `Enabled`, а элемента нет — вернитесь к разделу «Где это НЕ работает».

Признак успеха: флаг в состоянии `Enabled` после перезагрузки, сборка не изменилась, поведение воспроизводится после повторного входа в систему. Запишите в журнал дату и вывод `/query` — это ваша точка восстановления знаний, а не только система.

## Возможные проблемы и решения

**Проблема. Команда завершается отказом в доступе**

- Ошибка: `Отказано в доступе.` (в англоязычной системе — `Access is denied.`)
- Причина: PowerShell запущен без повышения прав; ViVeTool не может писать в защищённые разделы.
- Решение: закройте окно, запустите PowerShell через «Запуск от имени администратора», проверьте `IsInRole('Administrators')` → должно быть `True`, повторите команду из `C:\Tools\ViVeTool`.

**Проблема. Утилита не находит указанный идентификатор**

- Ошибка: вида `Unknown feature id: <ID>` (точный текст зависит от версии — сверьтесь с выводом команды).
- Причина: ID относится к другой сборке, опечатка в цифрах или функция ещё не существует в вашей версии Windows.
- Решение: перепроверьте ID по документации репозитория, сверьте номер сборки со Шага 1. Если сборка старая — обновитесь; ручная установка накопительного пакета описана в [Как установить обновление безопасности Windows 11 вручную через Microsoft Update Catalog](https://ai-release.org/guides/poshagovoe-rukovodstvo-kak-ustanovit-obnovlenie-bezopas.html?utm_source=tg&utm_medium=channel&utm_campaign=guide_inline&utm_content=guide_to_guide).

**Проблема. После обновления Windows функция пропала**

- Ошибка: `/query` возвращает `Disabled` для ID, который вы включали ранее.
- Причина: накопительное обновление или смена сборки перезаписали значения флагов на значения по умолчанию.
- Решение: сверьте сборку с базовой линией из журнала, выполните `/enable /id:<ID>` повторно и перезагрузитесь. Если после обновления нестабильна оболочка — `/fullreset` и перезагрузка, затем проверка по Шагу 3.

## Резюме и следующие шаги
Включайте функции по одной, с записью в журнал и проверкой `/query` после каждой перезагрузки — так откат занимает одну команду. Если эксперименты с системой вам не нужны, а нужен предсказуемый результат, начните с [отключения рекламы, телеметрии и ИИ-функций в Windows 11](https://ai-release.org/guides/otklyuchit-telemetriyu-i-reklamu-windows-11.html?utm_source=tg&utm_medium=channel&utm_campaign=guide_inline&utm_content=guide_to_guide).

## FAQ

**ViVeTool ломает Windows или нет?**
Утилита не заменяет системные файлы, а переключает флаги включения функций, поэтому откат возможен командой `/disable` или `/fullreset`. Риск в другом: включаемая функция может быть недоделанной, отсюда зависания Проводника и панели задач — поэтому точка восстановления обязательна.

**Почему после включения и перезагрузки ничего не появилось?**
Три типовые причины: код функции отсутствует в вашей сборке, функция включается на стороне сервиса и требует учётной записи или региона, либо функция привязана к редакции Windows. Проверьте `/query`: если состояние `Enabled`, а интерфейс не изменился — дело не в команде.

**Как откатить все изменения сразу?**
Выполните `.\ViVeTool.exe /fullreset` от имени администратора и перезагрузитесь. Команда возвращает флаги, изменённые утилитой, к значениям по умолчанию; отдельная функция отключается через `.\ViVeTool.exe /disable /id:<ID>`.

**Сбросятся ли включённые функции после обновления Windows?**
Могут: обновление перезаписывает значения флагов на значения по умолчанию. После каждого крупного обновления проверяйте `/query` по своим ID из журнала и при необходимости включайте функцию заново.
