Пустой квадрат вместо поиска в Windows 11: причины и исправление

Поисковая строка Windows 11 выглядит как простое текстовое поле. За ней стоит несколько отдельных процессов, и когда один из них перестаёт нормально инициализироваться, вместо интерфейса получаешь белый квадрат. Починить это можно за минуту, но понять почему так происходит намного интереснее.


Windows 11 разделила оболочку на независимые изолированные процессы, и поисковая строка живёт не внутри привычного explorer.exe, а в отдельном компоненте с собственным кешем, разрешениями и циклом жизни. Когда он падает, операционная система не замечает этого как критическую ошибку. На месте интерфейса остаётся белый прямоугольник, и пользователь начинает искать, что же пошло не так.

Ниже разберём, из чего на самом деле состоит поисковая строка Windows 11, почему она ломается и как её починить в зависимости от конкретной причины.


Из чего состоит поисковая строка в Windows 11

За поисковую строку отвечает не один процесс, а цепочка из четырёх компонентов. Каждый делает свою часть работы, и сбой в любом звене приводит к разным симптомам.

ShellExperienceHost.exe отвечает за рендеринг меню «Пуск», панели задач, центра уведомлений, виджетов и часов в трее. Работает как UWP-приложение (Universal Windows Platform) в изолированной среде: у него собственный контейнер данных в AppData, отдельный кеш и назначенные разрешения файловой системы. Именно ShellExperienceHost использует XAML-движок для отрисовки визуального интерфейса, и при его сбое пользователь видит белый квадрат на месте поиска.

SearchApp.exe непосредственно обрабатывает ввод и отображает результаты. В Windows 10 его называли Cortana.exe, после разделения голосового ассистента и поиска он получил самостоятельное существование. Строку ввода, выпадающие подсказки, карточки быстрых ответов и категории результатов рисует именно SearchApp.

SearchIndexer.exe вместе со вспомогательными процессами SearchFilterHost.exe и SearchProtocolHost.exe строит индекс файловой системы в фоне. Сервис называется Windows Search (WSearch). Без него поиск по содержимому файлов не работает вообще, даже если интерфейс загрузился корректно. Интерфейс запрашивает у SearchIndexer базу данных, и если та недоступна, результаты остаются пустыми.

RuntimeBroker.exe выступает посредником между UWP-приложениями и системой. Когда ShellExperienceHost или SearchApp обращаются к файловой системе, сети или реестру, именно RuntimeBroker проверяет разрешения и передаёт запрос дальше. При некоторых сбоях RuntimeBroker начинает потреблять 100% процессора, что само по себе является сигналом проблем с UWP-компонентами оболочки.

Белый пустой квадрат появляется тогда, когда ShellExperienceHost запустился, но не смог нормально инициализировать XAML-слой. Процесс существует в диспетчере задач, Windows его не перезапускает принудительно, а нарисовать что-либо компонент не способен.


Почему XAML-слой оболочки перестаёт инициализироваться

XAML расшифровывается как Extensible Application Markup Language, и в Windows 11 именно этот язык разметки используется для описания визуальных интерфейсов UWP-приложений. ShellExperienceHost при запуске загружает XAML-разметку, подтягивает ресурсы тем и шрифтов, передаёт всё это движку DirectComposition. DirectComposition компонует финальный кадр и выводит его на экран через DirectX.

Если кеш ShellExperienceHost повреждён или не соответствует версии системных библиотек, попытка загрузить XAML-движок завершается исключением. Операционная система не падает, потому что ShellExperienceHost изолирован от критических системных сервисов. Но и самовосстановиться он не может.

Прерванное обновление Windows

Накопительные обновления Windows 11 нередко обновляют компоненты оболочки через механизм AppX. Если установка прервалась из-за отключения питания, принудительной перезагрузки или конфликта процессов, пакет ShellExperienceHost оказывается в промежуточном состоянии. Часть файлов уже обновлена, часть осталась прежней, а кеш не соответствует ни старым, ни новым бинарникам. При следующем запуске инициализация завершается ошибкой.

Оптимизаторы и debloater-скрипты

Программы типа O&O ShutUp10, WPD или различные PowerShell-скрипты для «чистки» Windows отключают и удаляют UWP-компоненты. ShellExperienceHost при этом страдает не всегда напрямую. Чаще отключается какая-нибудь системная библиотека или сервис, от которого зависит инициализация XAML, и проблема проявляется позже, после перезагрузки или обновления.

Антивирус, блокирующий AppData

Активное сканирование (real-time protection) некоторых антивирусных решений при запуске ShellExperienceHost блокирует запись временных файлов в папку пакета. При каждом старте компонент пытается создать временные файлы в C:\Users\[имя]\AppData\Local\Packages\Microsoft.Windows.ShellExperienceHost_cw5n1h2txyewy\TempState и не может этого сделать. Процесс падает и перезапускается по кругу.

Нехватка свободного места

При свободном пространстве на системном диске ниже 3–5 ГБ кеши UWP-приложений перестают нормально обновляться. ShellExperienceHost не может записать временные файлы инициализации и зависает при каждом старте. Симптом повторяется при каждой перезагрузке, и сброс пакета помогает только до следующего рестарта.

Повреждённый профиль пользователя

Если в папке AppData\Local\Packages\Microsoft.Windows.ShellExperienceHost_cw5n1h2txyewy накопились битые файлы или нарушены разрешения, компонент не сможет инициализироваться вне зависимости от состояния системных файлов. Создай тестового пользователя и войди под ним. Если поиск работает нормально, проблема именно в профиле.


Как исправить пустой квадрат вместо поиска

Шаг 1. Сброс ShellExperienceHost

Открой PowerShell от имени администратора. Способов несколько: правая кнопка на кнопке «Пуск» и выбор «Терминал (Администратор)», или поиск «PowerShell» в меню Пуск с последующим выбором «Запуск от имени администратора».

Выполни команду:

Get-AppxPackage Microsoft.Windows.ShellExperienceHost | Reset-AppxPackage

Команда Reset-AppxPackage не переустанавливает компонент полностью. Она сбрасывает локальное состояние пакета: удаляет содержимое папок LocalState, RoamingState и TempState внутри AppData, сбрасывает настройки приложения до заводских значений, отзывает и заново назначает разрешения файловой системы для пакета. Исполняемые файлы и системные библиотеки при этом не меняются. После выполнения команды Проводник может кратко мигнуть. Перезапускать его вручную не обязательно.

Если белый квадрат не исчез после выполнения команды, перезагрузи компьютер.

Шаг 2. Сброс SearchApp

Если интерфейс заработал, но поиск по-прежнему не даёт результатов, сбрось компонент поиска:

Get-AppxPackage Microsoft.Windows.Search | Reset-AppxPackage

На некоторых версиях Windows 11 пакет называется иначе:

Get-AppxPackage Microsoft.Search.Bingdefault | Reset-AppxPackage

Чтобы не угадывать название, можно запустить обе команды подряд. Та, которая не найдёт пакет, завершится без ошибки, просто ничего не сделав.

Если поиск работает, но файлы не находит, проверь состояние сервиса индексации. В PowerShell:

Get-Service WSearch | Select-Object Status, StartType

При статусе Stopped и StartType отличном от Disabled запускай сервис:

Stop-Service WSearch -Force
Start-Service WSearch

Принудительная остановка перед запуском нужна для сброса зависших транзакций в базе данных индексатора. После перезапуска сервис начнёт перестраивать индекс. В зависимости от количества файлов на дисках процесс занимает от нескольких минут до нескольких часов. В это время поиск по содержимому файлов работает медленнее обычного.


Как SearchIndexer хранит данные и почему база повреждается

SearchIndexer строит базу данных с метаданными файлов: имена, расширения, даты изменения, теги, а для поддерживаемых форматов и полнотекстовое содержимое. База хранится в C:\ProgramData\Microsoft\Search\Data\Applications\Windows.

Формат базы данных называется ESE (Extensible Storage Engine). Тот же движок используют Exchange Server и Active Directory в корпоративной среде. ESE ведёт журнал транзакций, благодаря которому база восстанавливается после неожиданного отключения питания. При серьёзном повреждении или переполнении диска транзакции оказываются несогласованными, и SearchIndexer начинает падать при каждом запуске.

Пересобрать индекс с нуля можно двумя способами.

Первый вариант через интерфейс: Параметры -> Конфиденциальность и безопасность -> Поиск в Windows -> Дополнительные параметры индексатора -> Дополнительно -> Перестроить.

Второй вариант через PowerShell более радикальный: удаляет базу целиком и позволяет сервису создать новую:

Stop-Service WSearch -Force
Remove-Item -Path "C:\ProgramData\Microsoft\Search\Data\Applications\Windows\*" -Recurse -Force
Start-Service WSearch

После удаления базы WSearch автоматически создаёт пустую структуру и запускает полную переиндексацию. В процессе поиск по содержимому не работает, поиск по именам файлов работает частично через прямой перебор.


SFC и DISM: зачем нужны оба инструмента и в каком порядке их запускать

Если сброс AppX-пакетов не помог, проблема находится в системных файлах за пределами папок AppData.

SFC (System File Checker) проверяет целостность защищённых системных файлов. Запуск из командной строки с правами администратора:

sfc /scannow

SFC сверяет каждый файл с эталонной копией из папки C:\Windows\WinSxS и при обнаружении расхождений восстанавливает оригинал. Работает без обращения к интернету. Ограничение в том, что эталонные копии в WinSxS тоже могут быть повреждены, и тогда SFC восстанавливает файл из такой же битой копии.

DISM (Deployment Image Servicing and Management) с ключом RestoreHealth обращается к серверам обновлений Windows и скачивает чистые версии компонентов:

DISM /Online /Cleanup-Image /RestoreHealth

Правильный порядок: сначала DISM, затем SFC. DISM восстанавливает эталонные копии в WinSxS, а следующий запуск SFC уже использует гарантированно чистые образцы для сравнения. Делать наоборот менее эффективно.

DISM при нормальной работе скачивает несколько гигабайт. Если компьютер за прокси или без доступа к серверам Microsoft, можно указать локальный образ с установочного носителя:

DISM /Online /Cleanup-Image /RestoreHealth /Source:wim:D:\sources\install.wim:1 /LimitAccess

Здесь D:\sources\install.wim указывает путь к файлу install.wim с установочного носителя той же версии Windows 11, которая установлена на компьютере. Версии должны совпадать точно, иначе DISM откажется использовать образ.


Чек-лист: что проверять и в каком порядке

Когда поисковая строка перестала работать или отображается белым квадратом, проверяй компоненты последовательно.

Диагностика перед исправлением:

[ ] ShellExperienceHost.exe запущен (Диспетчер задач -> вкладка «Подробности», поиск по имени)

[ ] SearchApp.exe запущен

[ ] Сервис WSearch активен и в статусе Running

[ ] На системном диске свободно больше 5 ГБ

[ ] Последнее обновление Windows завершилось без ошибок (Параметры -> Центр обновления)

[ ] В Event Viewer нет повторяющихся ошибок ShellExperienceHost (Win + R -> eventvwr.msc -> Журналы Windows -> Приложение)

Исправление по порядку:

[√] Сброс ShellExperienceHost: Get-AppxPackage Microsoft.Windows.ShellExperienceHost | Reset-AppxPackage

[ ] Перезагрузка компьютера [ ] Если поиск не нашёл файлы: сброс SearchApp и перезапуск WSearch

[ ] Если повторяется после каждой перезагрузки: проверить антивирусные исключения для папки AppData\Local\Packages

[ ] Если ничего не помогло: запустить DISM, затем SFC

[ ] Крайний вариант: создать нового пользователя и проверить, работает ли поиск в новом профиле

Проверить Event Viewer на ошибки полезно даже если кажется, что причина очевидна. Там часто видно, какой именно компонент выдаёт ошибку и с каким кодом.


Почему проблема возвращается после сброса

Если пустой квадрат появляется снова после каждой перезагрузки или обновления, разовый сброс не решает корень проблемы.

Антивирус активно сканирует AppData. Папка C:\Users\[имя]\AppData\Local\Packages должна быть в исключениях антивируса. Активное сканирование при каждом запуске ShellExperienceHost блокирует запись временных файлов, и инициализация снова завершается ошибкой. Особенно часто такое поведение встречается в Kaspersky при агрессивных настройках эвристики.

Сторонние модификаторы оболочки. ExplorerPatcher, StartAllBack, Open-Shell и классические оболочки с поддержкой старого меню Пуск патчат компоненты оболочки на низком уровне. После обновлений Windows их патчи нередко конфликтуют с новыми версиями ShellExperienceHost. Временное удаление такого ПО позволяет проверить гипотезу, не меняя ничего другого.

Кончается место на диске. При падении свободного места ниже 3–5 ГБ кеши UWP-приложений не обновляются нормально. Сброс AppX-пакета помогает до следующей перезагрузки, потому что при следующем запуске ShellExperienceHost снова не может записать временные файлы.

Повреждённый профиль пользователя. Если нарушены разрешения на папке пакета или часть файлов профиля повреждена, сброс AppX не справится, потому что команда сама работает в контексте текущего пользователя. Создание нового профиля остаётся единственным надёжным способом проверить эту гипотезу.


Перерегистрация всех AppX-пакетов: когда это оправдано

В большинстве инструкций рекомендуют команду перерегистрации всех AppX-пакетов сразу:

Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}

Запускать её при единственной проблеме с поиском нецелесообразно. Команда перерегистрирует все UWP-пакеты для всех пользователей. На системе с большим количеством установленных приложений выполняется несколько минут и генерирует поток ошибок в консоли. Для неиспользуемых пакетов это нормально, но затрудняет диагностику.

Применять её стоит в ситуации, когда сломаны несколько компонентов оболочки одновременно: не открывается меню Пуск, пропали виджеты, не работает центр уведомлений, сломан поиск. При точечной проблеме с поиском хватает сброса конкретных пакетов ShellExperienceHost и SearchApp.


Альтернативный поиск: что использовать, пока стандартный восстанавливается

Три инструмента, которые работают полностью независимо от Windows Search Service и ShellExperienceHost.

Everything от Voidtools. Строит индекс файловой системы напрямую, обходя Windows Search. На диске с несколькими сотнями тысяч файлов индексация занимает секунды. Результаты появляются в реальном времени при наборе. Распространяется бесплатно, установочный файл меньше 2 МБ. Поиск по содержимому файлов в базовой версии ограничен, но поиск по именам и путям работает быстрее встроенного инструмента.

PowerToys Run. Часть пакета Microsoft PowerToys, вызывается сочетанием Alt + Пробел. Ищет приложения, файлы, выполняет вычисления, открывает ссылки. Поиск файлов реализован через отдельный подключаемый модуль, который настраивается независимо от основного интерфейса.

Listary. Коммерческий поисковик с бесплатной базовой версией. Встраивается в стандартные диалоги открытия файлов Windows: когда любое приложение открывает диалог выбора файла, Listary автоматически добавляет поисковую строку прямо в него. Полезен для разработчиков и тех, кто часто работает с файловой системой через диалоги сохранения и открытия.


Как устроена изоляция оболочки и зачем Microsoft перешла на UWP

В Windows 7 и ранних версиях Windows 10 оболочка была монолитной. Один процесс explorer.exe отвечал за меню Пуск, Проводник, панель задач, поиск и системный трей. Сбой в любой из этих частей мог потянуть за собой всё остальное. Принудительный перезапуск explorer.exe был единственным способом оживить зависшую оболочку.

Переход на UWP разделил оболочку на изолированные процессы. ShellExperienceHost падает и перезапускается без влияния на Проводник. Проблема с SearchApp не затрагивает центр уведомлений. Обновления компонентов оболочки можно поставлять через Store, не выпуская полное системное обновление.

Обратная сторона: изолированные AppX-пакеты устроены сложнее, чем классические Win32-приложения. У каждого собственный кеш, собственные разрешения в файловой системе, собственный журнал событий. Стандартные административные инструменты, рассчитанные на Win32, применимы к ним частично. Отсюда и возникают ситуации, когда переустановить проблемный компонент нельзя обычным способом, а нужно знать про Reset-AppxPackage.

С практической точки зрения: почти все проблемы с UWP-компонентами оболочки решаются точечным сбросом пакета, а не переустановкой системы. Переустановка оправдана только при повреждении системных файлов, которые не восстанавливаются через DISM и SFC, или при полностью сломанном профиле пользователя без возможности его восстановить.


#технологии #IT #разработка #программирование #кодинг #лайфхаки #полезное #советы #безопасностьIT #приложения

Оставьте комментарий