Не работает пуск в Windows Server 2016, решаем за минуту
- Описание ситуации
- Основные причины ломающие кнопку пуск в Windows Server 2016
- Перезапускаем процесс отвечающий за работу кнопки пуск
- Отсутствие прав на запуск пуска
- Перезапуск службы поиска
- Восстанавливаем работу пуск через средство диагностики
- Как повторно зарегистрировать компоненты меню Пуск в Windows Server 2016
- Удаление антивируса для ремонта кнопки "Пуск"
- Восстановление поврежденных компонентов в системе
- Восстановление базы данных TileDataLayer
- Проверка политики Applocker
- Создание новой учетной записи
- Отключение некоторых функций меню "Пуск"
- Не работает пуск из за UPD дисков
- Восстановление поврежденного профиля
- Не работает пуск из-за брандмауэра
- Удаление Dropbox
- Отключение UAC
- Удаление обновления
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов Pyatilistnik.org. В прошлый раз мы с вами научились создавать резервные копии сертификатов и копировать их в нужное вам расположение, в этом нам помогали две утилиты, robocopy и keytool. Сегодня же я с вами опять хочу заняться траблшутингом, а именно одной из неприятных ситуаций которая присутствует в операционной системе Windows Server, аж с 2012 года. Мы рассмотрим методы решения, когда у вас не работает пуск в Windows Server 2016. При попытке его открыть, просто ничего не происходит и вы лишаетесь огромного удобства связанного с этим.
Описание ситуации
В инфраструктуре предприятия есть отказоустойчивая RDS ферма на базе Windows Server 2016, на одном из RDSH серверов у пользователей возникла проблема, что при попытке открыть меню "Пуск" ничего не происходит, кнопка просто не реагирует. Это очень пагубно сказывается на работу сотрудников, так как не все из них могут запускать необходимые для них программы и не все знают, короткие команды для меню "Выполнить", через которые можно открывать кучу вещей. Как я и писал выше данный глюк еще существует со времен Windows Server 2012 и так же легко может встретиться и в Windows Server 2019, спасибо Microsoft.
Основные причины ломающие кнопку пуск в Windows Server 2016
Сразу хочу отметить, что в ряде случаев вам придется изрядно попотеть, чтобы восстановить работу меню пуск, и иногда быстрее просто переустановить сервер, если конечно на нем нет ничего такого экстраординарного. Хочу выделить вот такой список почему не работает пуск:
- В системе завис процесс отвечающий за меню "Пуск"
- Ваша система имеет поврежденные файлы и компоненты, например из-за вируса
- В вашей системе слетели права на папку или ветку реестра, отвечающих за открытие кнопки пуск
- Прилетело глючное обновление Windows
- Сторонние утилиты, после установки которых идет конфликт в системе
Перезапускаем процесс отвечающий за работу кнопки пуск
Логично предположить, что в операционных системах Windows за любой компонент, отвечает тот или иной процесс и кнопка пуск, тут не исключение. За ее функционал отвечают два процесса:
- Explorer.exe (Проводник)
- StartMenuExperienceHost.exe (Запустить)
Зная, это я в первую очередь всегда советую попробовать их перезапустить, так как это просто и не потребует перезагрузки сервера. Для этого нажмите одновременно три кнопки CTRL+SHIFT+ESC, это запустит диспетчер задач, через который вы сможете выполнить нашу задумку.
Сразу отмечу, что найти процессы вы можете и на вкладке "Процессы", а так же на вкладке "Подробности". Разница в том, что на первой все почти будет по русски, а на второй все чисто системными именами. Процесс Explorer.exe в русской версии называется "Проводник", щелкаем по нему правым кликом мышки и из контекстного меню выберите пункт "Перезапустить" или "Снять задачу", иногда это требуется.
Процесс StartMenuExperienceHost.exe в русской версии называется "Запустить"
Ну и на вкладке "Подробности" вы можете найти все то же самое.
Во многих случаях, это помогает исправить критическую ошибку, когда не работает кнопка пуск на вашем сервере, это такой лайтовый вариант.
Отсутствие прав на запуск пуска
В огромном количестве случаев бывает так, что причиной по которой вас не открывается и вообще ни как не реагирует меню псу, это отсутствие прав на компонент {316CDED5-E4AE-4B15-9113-7055D84DCC97}. Ранее мы уже встречались с вами с компонентом {316CDED5-E4AE-4B15-9113-7055D84DCC97}, когда устраняли ошибку ID 10016. Просто если кто не в курсе, то Windows видит все функции, компоненты в виде GUID номеров, и вот панель "Пуск" имеет вид {316CDED5-E4AE-4B15-9113-7055D84DCC97}, тут нет ничего сложного. Если посмотреть реестр Windows, то вы обнаружите запись:
Immersive Shell - это и есть интерфейс Metro в Windows. Понимая это нужно удостовериться, есть ли у вас права на его использование или нет.
Для этого я использую скрипт DCOMPermissions.psm1.
Поместите его в доступную папку, у меня это будет C:\Share.
Далее я вам советую запустить оболочку PowerShell ISE в режиме администратора, она находится по пути:
Щелкаем по значку powershell_ise.exe правым кликом и выбираем пункт "Запуск от имени администратора".
выполните команду, которая позволит запускать неподписанные скрипты:
Выберите пункт "Y".
Далее переходим в нашу папку, где лежит скрипт и импортируем данный модуль.
Import-Module .\DCOMPermissions.psm1
Далее даем права для группы "NT AUTHORITY\Прошедшие проверку"
Далее проверим, что на контейнер {316CDED5-E4AE-4B15-9113-7055D84DCC97} на значились наши права, для этого выполните:
Как видим NT AUTHORITY\Прошедшие проверку есть в списке, по идее кнопка пуск у вас сразу должна заработать, но если не заработает, то нужно перезагрузиться или сделать выход из системы (logoff).
Перезапуск службы поиска
Если перестал работать пуск, то из быстрых решений можете проверить, что у вас запущена служба поиска и сам процесс. Перейдите в оснастку службы (services.msc) и найдите там службу "Windows Search", убедитесь, что она запущена и что у нее тип запуска "Автоматически".
Так же откройте "Диспетчер задач", вкладка "Подробности". Найдите там SearchUI.exe и снимите у него задачу, он будет перезапущен.
То же самое вы можете найти и на вкладке "Процессы", тут уже будет "Поиск"
Восстанавливаем работу пуск через средство диагностики
Следующим методом, я вам настоятельно рекомендую использовать разработанную в Microsoft утилиту "Средство диагностики и исправления проблем с кнопкой "Пуск (startmenu.diagcab)'".
Запускаем утилиту, она покажет, что будет искать проблемы с работой главного меню "Пуск". Нажмите далее.
Утилита начнет сканирование и обнаружение проблем.
Через некоторое время вы получите результат. Если все хорошо, то статус будет "Модуль устранения неполадок не выявил проблемы"
При желании вы можете более детально посмотреть все пройденные проверки, через пункт "Просмотреть дополнительные сведения"
Что именно проверяет средство устранения неполадок по мимо установки пакетов. Проверяет, есть ли у текущего пользователя разрешения на доступ к следующему разделу реестра, и при необходимости исправляет списки управления доступом:
Если же есть проблемы, то вы можете увидеть такие сообщения об ошибке, которые не удается исправить:
Ругается, что компоненты не установлены.
Как видите, он нам тонко намекает, что хорошо бы переустановить Microsoft.Windows.ShellExperienceHost.
Как повторно зарегистрировать компоненты меню Пуск в Windows Server 2016
Очень часто меню "Пуск" может не работать из-за поврежденного или отсутствующего пакета. Никто вам не мешает заново зарегистрировать меню "Пуск" . С помощью Windows PowerShell вы можете сделать это возможным, инструкции по использованию которого упомянуты ниже. Обратите внимание, что для применения этого трюка вам необходимо войти в систему как администратор, поэтому, если ваша система является частью домена, это может не сработать, так как обычно у пользователей минимальные права на рабочей станции.
Первое, что вы должны сделать для того, чтобы заново зарегистрировать пакет отвечающий за ваше меню "Пуск", это запустить ОБЯЗАТЕЛЬНО в режиме администратора оболочку PowerShell. В окне PowerShell вам необходимо ввести вот такую команду:
После успешного выполнения команды вы можете закрыть окно PowerShell и перезагрузить компьютер. После перезапуска системы проблемы, с которыми вы столкнулись с меню "Пуск", должны быть решены.
Если вы потом по прежнему не можете взаимодействовать с кнопкой "Пуск" и средство проверки, все так же показывает отсутствие компонентов "Microsoft.Windows.ShellExperienceHost" and "Microsoft.Windows.Cortana", то причиной может быть ваш антивирус, например Comodo Internet Security или Symantec.
Удаление антивируса для ремонта кнопки "Пуск"
Бывают неприятные ситуации, когда программа, которая призвана вас защищать ломает вашу систему или ее компоненты, случаев таких полно. Если у вас в ОС есть антивирусные решения, отличные от защитника Windows, то можно попробовать их удалить (Avast, Comodo).
Удалять антивирус можно как и любую обычную программу, при желании можете скачать с сайта производителя специальную утилиту для этих вещей, обычно они есть у каждого антивируса. После удаления антивируса, обязательно перезагрузите сервер или компьютер. Далее когда система вновь загрузится, откройте PowerShell в режиме администратора и введите команды:
Или перерегистрировать все сразу пакеты:
Далее откройте реестр Windows и перейдите в раздел:
Находим тут ключ с именем "Start', щелкаем по нему двойным щелчком мыши и меняем значение на 4. После чего обязательно перезагрузите вашу систему. Это должно исправить ситуацию, когда не работает меню пуск в Windows.
Восстановление поврежденных компонентов в системе
Очень часто, одной из причин почему не работает пуск, является, повреждение файловой системы Windows и ее компонентов, в следствии чего вы будите получать еще и ошибку:
В такой ситуации нужно выполнить один скрипт, который позволит вам все быстро проверить и восстановить. Про скрипт я уже рассказывал в статье, где мы ремонтировали ошибки "80244010 и C80003FB".
После того, как вы его загрузите и распакуете, вам нужно запустить от имени администратора файл ResetWUEng.cmd
В результате чего у вас будет запущен скрипт, на экране ознакомления вам нужно подтвердить, что вы его запускаете, для этого нажмите "Y".
Перед вами появятся все возможности данного скрипта Reset Windows Update Tool. Нас будут интересовать пункты с 5-го по 11.
Выбираем пятый пункт (Runs Chkdsk on the Windows Partition), чтобы проверить наш диск C:\ на наличие программных и физических ошибок. Вас уведомят, что это можно выполнить при следующей перезагрузке системы, подтвердите нажав клавишу "Y".
Перезагрузите вашу систему. Для этого можно выбрать 19 пункт "Restarts your PC"
Вот так будет выглядеть проверка на ошибки в Windows. После того, как загрузиться ваша система сразу проверьте, открывается ли у вас кнопка пуск или нет. Если нет, то переходим к следующему пункту скрипта.
Выбираем шестой пункт "Run the System File Cheker Tool", по сути у вас будет запущена команда (sfc /scannow). Использование средства проверки системных файлов довольно длительный процесс, поэтому вам придется запастись терпением.
Дожидаемся завершения. Если будут найдены ошибки, то sfc попробует их исправить. Могут быть ситуации, что это не получается и вам нужно переходить к следующему пункту. Если целостность была восстановлена, то попробуйте перезагрузится и удостовериться, что ваше меню "Пуск" снова стало активным. Хочу отметить, что весь процесс сканирования будет отображен в логах, где так же можно посмотреть отдельные ошибки:
Если у вас по прежнему не работает меню "Пуск", то выбираем пункт 8 "Checks the image for component store corruprion". У вас будет выполнена команда (dism /checkhealth). В идеале повреждений не должно быть. Если оно обнаружено, то переходим к пункту 9.
Запускаем пункт "Perform repair operations automatically'". Это аналог команды (dism /online /cleanup-image /restorehealth). Через некоторое время, все должно быть восстановлено.
Если восстановление не получилось, то необходимо открывать лог файл и смотреть ошибки. Найти их можно по пути:
- sfc /scannow
- DISM /Online /Cleanup-Image /ScanHealth
- DISM /Online /Cleanup-Image /CheckHealth
- DISM /Online /Cleanup-Image /RestoreHealth
не забываем потом перезагрузиться.
Переходим к 11 пункту (Deletes any incorrect registry values) и постараемся удалить старые и неправильные записи в реестре.
На всякий случай на вашем рабочем столе будет создана резервная копия всего реестра. После чего начинается диагностика и очистка реестра Windows от мусорных записей. Если операция успешно завершена, я вам предлагаю перезагрузиться и проверить стал ли теперь работать "Пуск" (Постарайтесь сразу папку с резервной копией реестра не удалять, а хотя бы недельку подержать на всякий случай)
Если у вас нет возможности скачать скрипт описанный выше, то вы можете так же в командной строке выполнить код:
Восстановление базы данных TileDataLayer
Бывает так, что локальный профиль пользователя может быть поврежден. В частности, могут быть повреждены база данных TileDataLayer, папка пакетов и файл UsrClass.dat. Попробуем восстановить их.
Алгоритм действий такой.
- Вы заходите на сервер с Windows Server 2016, где работает кнопка "Пуск". Обязательно убедитесь, что у вас там есть две учетные записи с административными правами, это связано с тем, что когда сессия пользователя активна, у нее используются файлы из папки TileDataLayer , они заблокированы, поэтому вам и нужно их скопировать со второй учетной записи, которая в данный момент не активна на сервере. Папка лежит по пути "%LOCALAPPDATA%\TileDataLayer\Database"
- Далее вы заходите на сервер, где не работает кнопка пуск. Необходимо войти в систему с учетной записью администратора с правами на оба профиля пользователя. Перейдите по пути, заменив логин на имя сбойного.
- Переименуйте или удалите папку Packages, лично я переименовал в папку Packages.old
- Удалите или переименуйте файл UsrClass.dat по пути "C:\Users\логин сбойной учетки\AppData\Local\Microsoft\Windows\UsrClass.dat". Я переименовал его в UsrClass.old
- Далее вам нужно заменить битую папку TileDataLayer на рабочую, ту что вы скопировали с другого сервера. Напоминаю, куда ее подложить "C:\Users\логин поврежденной учетки\AppData\Local\TileDataLayer\Database"
- Перезагружаемся и проверяем работу меню "Пуск"
Проверка политики Applocker
Applocker - действительно хорошая функция, но, как и все функции безопасности, у нее есть некоторые подводные камни. Один из них заключается в том, что если вы включите Applocker в Windows 10 или Windows Server 2016, то кнопка "Пуск" больше не будет работать. Если щелкнуть левой кнопкой мыши, ничего не произойдет.
Если у вас есть контроллер домена Windows 2008 R2, то вы не увидите "Правила для упакованных приложений" в консоли управления групповой политикой. Вам нужно будет создать эту политику на сервере Windows Server 2012 или выше с GPMC. Чтобы решить эту проблему, вам необходимо создать правила для упакованных приложений в групповой политике Applocker. Для этого выполните следующие действия
- Перейдите в "Конфигурация компьютера - Политики - Конфигурация Windows - Параметры безопасности - Политики управления приложениями - Applocker"
- 2. Щелкните правой кнопкой мыши "Правила пакетных приложений" и выберите "Создать правила по умолчанию".
- После обновления групповой политики к рабочей станции Windows 10 кнопка "Пуск" снова заработает.
Создание новой учетной записи
Нужно выяснить является ли проблема на уровне сервера или же на уровне вашей учетной записи. Для это вы можете в случае с доменным компьютеров попробовать войти под другой учетной записью и проверить открывается ли пуск или нет. В случае с обычным серверов Windows Server 2016, который находится в рабочей группе, я вам советую создать новую учетную запись и проверить уже под ней. Для этого в командной строке в режиме администратора введите:
Далее пробуем зайти под новым пользователем, если вы используете удаленное подключение к рабочему, столу то не забываем дать учетной записи административные права
Отключение некоторых функций меню "Пуск"
Что еще делать если не работает пуск? Вы можете проверить не активирована ли у вас опция "Открывать начальный экран в полноэкранном режиме". Для этого вызовите окно "Выполнить" и введите в нем:
Уберите ползунок с опции "Открывать начальный экран в полноэкранном режиме".
Если у вас есть проблемы с файловой системой, то можете получить ошибку:
Нужно снова проверить ее на ошибки через утилиты sfc и DISM.
Не работает пуск из за UPD дисков
Очень часто на RDS ферме используются UPD диски, из-за которых может не работать панель пуска, казалось, что это было решено до появления Spectre patch, а затем снова вернулось. Когда это происходит, в %localappdata%\Packages присутствует только 1 или 2 папки, должно быть 15. Вот пример скрипта Powershell, который вам поможет это исправить, запускать необходимо в контексте пользователя у которого не работает кнопка пуск.
if($packages.count -lt 14){
$apps = Get-ChildItem -Recurse -Path "C:\Windows\SystemApps","C:\Windows\ImmersiveControlPanel", "C:\Windows\PrintDialog","C:\Windows\MiracastView" -Include "AppXManifest.xml"
Foreach($app in $apps){
Add-AppxPackage -DisableDevelopmentMode -Register "$app" -Verbose}
}
Else{
$null}
Восстановление поврежденного профиля
Итак, что делать если не работает пуск даже после всех вышеописанных методов. Одной из причин может быть поврежденный профиль пользователя, как правило в реестре создается его копия с проблемами, я уже такое рассматривал в статье "Невозможно загрузить профиль пользователя". Вам нужно для начала выяснить SID пользователя у которого есть проблемы с меню "Пуск", а далее выполняем поэтапно следующие шаги:
- Войдите на сервер с другой учетной записью администратора.
- Удалите профиль пользователя в c:\users\<поврежденный профиль>
- Перейдите в реестр к ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\ CurrentVersion \ ProfileList
- Изучите каждую запись SID для "ProfileImagePage REG_EXPAND_SZ" C:\users<поврежденный профиль>"
- Удалить запись SID.
- Выйти
- Войдите как пользователь <поврежденный профиль>, чтобы создать новый профиль.
Не работает пуск из-за брандмауэра
Не знаю в чем прикол, но в ряде случаев вам потребуется выполнить удаление ключей реестра отвечающих за правила брандмауэра и заново их воссоздание. Запустите в PowerShell команды:
New-Item "HKLM:\SYSTEM\CurrentControlSet\Services\SharedAccess \Parameters\FirewallPolicy\RestrictedServices\Configurable\System"
Remove-Item "HKLM:\SYSTEM\CurrentControlSet\Services\SharedAccess \Parameters\FirewallPolicy\FirewallRules"
New-Item "HKLM:\SYSTEM\CurrentControlSet\Services\SharedAccess \Parameters\FirewallPolicy\FirewallRules"
Remove-Item "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion \Notifications" -Recurse
New-Item "HKLM:\SOFTWARE\Microsoft\Windows NT\ CurrentVersion\Notifications"
Для Windows Server 2019, вот такую ветку нужно удалить и воссоздать: HKLM:\SYSTEM\CurrentControlSet\Services\SharedAccess\ Parameters\FirewallPolicy\RestrictedServices\AppIso\FirewallRules
Делаем, мы это для того, чтобы удалить огромное количество записей в данной ветке, которые почему-то генерирует брандмауэр. Вот пример нормального содержимого, количество записей свыше 7000
А вот пример, где количество записей превышает свыше 250 00 и это не нормально, и может спокойно ломать кнопку пуск.
Удаление Dropbox
Если у вас на сервере Windows Server 2016 установлена старая версия Dropbox, то попробуйте ее удалить и если она вам нужна поставьте более свежую версию.
Отключение UAC
Если у вас были манипуляции с правами и кнопка пуск перестала открываться, то попробуйте отключить UAC, чтобы удостовериться является ли он причиной или нет.
Удаление обновления
Если у вас был установлен кумулятивный, месячный апдейт, то попробуйте удалить новую KB, после чего перезагрузите сервер и проверьте вашу кнопку пуск.
На этом у меня все, я постарался собрать все известные мне методы, которые могут помочь вам решить проблему с неработоспособностью меню "Пуск". С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.
Добрый день.
Была аналогичная проблема на терминальной ферме 2019.
Обратился в Microsoft за помощью. Рекомендовали сделать следующее на всех серверах фермы:
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess
\Parameters\FirewallPolicy /v DeleteUserAppContainersOnLogoff /t reg_dword /d 1
reg delete HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\SharedAccess
\Parameters\FirewallPolicy\RestrictedServices\AppIso\FirewallRules /va
reg delete HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\SharedAccess
\Parameters\FirewallPolicy\RestrictedServices\Configurable\System /va
Может кому пригодится.
Спасибо за статью, перепробовал всё, но, реально помогла чистка реестра, как описано в единственном комментарии, ввел 3 команды, почистился реестр и вуаля, ничего не пришлось перезагружать. Так что еще раз спасибо, коллеги.
Проконсультируйте, пожалуйста, удаление правил ведет к удалению всех правил или только «нагенерированных» ?