Продовжуємо ділитися цікавими кейсами. Днями в електронну пошту прийшов лист від нашого читача Віталій. Нижче текст листа:

“Вітання! Чи не стикалися з проблемою: після того як комп’ютер з Windows 8 включили в домен AD на ньому перестали працювати Metro-програми? Стартовий Metro-екран вантажиться, значки на ньому відображаються, але якщо клікнути по піктограммке будь-якого Metro-додатки – на 2-5 секунд з’являється велика іконка програми, після чого вона пропадає, а користувача викидає на початковий екран. Після введення в домен не запускаються Metro-додатки в Windows 8

В логах такі помилки Ідентифікатор події: 5961 Активація програми для Windows. Не вдалося запустити контракт із помилкою: Додаток не запущено.

Також помітили, що така проблема спостерігається тільки з доменної обліковим записом, якщо в систему увійти під локальної учеткой – все рівно, будь-які Metro Apps запускаються.

Є ідеї в чому м.б. проблема?

Заздалегідь дякую!”

З проблемою розбиралися досить довго: ми відразу припустили, що проблема може бути в некоректних параметрах, що задаються доменними груповими політиками. Вирішили помістити машину і обліковий запис користувача в окремі тестові OU (контейнери AD) і заблокували застосування доменних GPO на ці OU – і це допомогло, після перезавантаження Metro додатки стали запускати! Це означало, що джерело проблем – якась групова політика. Шляхом послідовного перебору політик визначили, що винна в такої поведінки сучасних додатків – політика, що представляє всім (Everyone) права читання на гілку HKEY_CLASSES_ROOT (трохи дивна політика, але її з якоїсь причини потрібно використовувати). Ми вирішили розібратися в причинах докладніше.

В одній зі статей бази знань Microsoft http://support.microsoft.com/kb/2798317, Йдеться, про те, що поширена причина, через яку можуть не запускатися Metro-додатки Windows 8 – нестандартні права доступу до папок або гілках реєстру.

Справа в тому, що в Windows 8 з’явилася особлива група Усі пакети програм (В цьому ця група має зумовлений SID – S-1-15-2-1), яка для коректної роботи Modern Apps в Windows 8 повинна мати доступ до певних об’єктів реєстру і файлової системи

Зокрема, група All Application Packages повинна мати доступ на читання (права Read, Execute і List folder Contents) до стежать каталогах файлової системи:

  • Програмні файли и Програмні файли (x86)
  • Windows
  • % userprofile% AppData Local Microsoft Windows WER

У реєстрі же група All Applications Packages повинна володіти правами читання (Read) на наступні гілки:

  • HKEY_CLASSES_ROOT
  • HKEY_LOCAL_MACHINE Драйвери
  • HKEY_LOCAL_MACHINE Апаратне забезпечення
  • HKEY_LOCAL_MACHINE SAM
  • HKEY_LOCAL_MACHINE ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ (зокрема, HKEY_LOCAL_MACHINE Software Microsoft NET Framework Setup NDP, HKEY_LOCAL_MACHINE Software Microsoft RFC1156Agent CurrentVersion Parameters, HKEY_LOCAL_MACHINE Software Microsoft SQMMARLE SOFKE
  • HKEY_LOCAL_MACHINE SYSTEM
  • HKEY_USERS

У нашому випадку виявилося, що права на гілку HKEY_CLASSES_ROOT перезаписувати доменної політикою, а так як чомусь група All Application Packages не відноситься до поняття Everyone, доступ до цієї гілці у неї відсутня. Тому Metro-програми, але не можуть запуститься. Ми змінили політику, налаштувавши надання права на читання гілки HKEY_CLASSES_ROOT також локальної групи All Application Packages.

У тому випадку, якщо джерело проблем з запуском Metro-додатків в Windows 8 не політика, а некоректні зміни в реєстрі / файлової системи – доступ можна надати і вручну.

Дуже важливо! Ні в якому разі не перезаписувати (не буде наслідувати вниз) права на дочірні об’єкти файлової системи або гілки реєстру. Справа в тому, що на дочірні об’єкти можуть бути призначені власні права доступу, відмінні від батьківських, які при спадкуванні можна затерти, порушивши тим самим роботу системи або додатків.

У нашому прикладі було б:

  1. Відкрити редактор реєстру (regedit.exe),
  2. Клацнути ПКП у гілці HKEY_CLASSES_ROOT і вибрати пункт меню Дозволи (Дозволу) Права на гілки в реєстрі
  3. На нижньому скріншоті видно, що групи All Application Packages в списку доступу немає. Натиснемо кнопку додати (Додати), У другому полі (From this location) вказати область пошуку – локальний комп’ютер (за замовчуванням пошук по всьому домену), і вказати ім’я групи – Усі пакети програм. потім натиснути ОК. Права групи All Application Packages
  4. Натиснувши на кнопку Розширений, Переконайтеся що спадкування відключено. Спадкування прав в реєстрі відключено
  5. натиснувши ОК, Збережемо права на гілку. Право читання групі All Application Packages на гілку HKEY_CLASSES_ROOT
  6. Перезавантажте систему і перевірте чи будуть запускати Metro-додатки з-під доменної облікового запису.

Сподіваємося, що рішення описаної проблеми буде корисним ще комусь.

Leave a Reply

Your email address will not be published. Required fields are marked *