пятница, 4 декабря 2020 г.

Кастомизация пользовательского окружения Windows. Startmenulayout.

Давно обещал сообществу написать стать/несколько статей по кастомизации пользовательского окружения. Сразу оговорюсь, что я буду описывать большую часть настроек, которые делаются локально/в default профиль. Почему? Потому что очень часто бывает диалог:

- А как сделать вот эту штуку юзеру?

- Через GPO

- У меня нет прав в GPO

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

Из полезного, можно почитать про mandatory profile (ссылка), default profile (реестр, файлы - об этом позже), lgpo (ссылка)

Итак, о чем сегодня пойдет речь - о внешнем виде меню пуск и тут сразу же в ход пойдут небольшие костыли и опыт. Наверное, по настройке меню пуск есть 100500 статей, но с чего-то надо было начинать. 

Как вам нравится больше:

1. Стандартное меню пуск


2. Кастомизированное меню пуск













Раньше считалось нормальной практикой наделать кучу ярлыков/папок/папок с ярлыками на рабочем столе пользователя, мы же стараемся идти по пути "чистого" рабочего стола. Пользователь сам должен решать, чему быть на рабочем столе. И вот тут-то мне видятся одни из основных прелестей кастомизации меню пуск:

Неважно, сколько приложений у вас открыто, вам не нужно ничего сворачивать, что бы запустить какое-то офисное приложение/что угодно еще - вы просто нажимаете на кнопку пуск и открываете. Вы можете размещать здесь так же ссылки на ваши папки с ярлыками корпоративного софта (которые вы создаете через GPO, но не на рабочем столе, тут есть нюанс, о котором позже)

Само по себе кастомизированное меню пуск может быть сконфигурировано в двух режимах:

  1. Жесткое назначение (full default layout override), неизменяемое, добавить ничего нельзя
  2. Частичное изменение (partial default layout override). Администратор задает базовые элементы, которые нельзя изменить, пользователь может добавлять элементы.

Для того, что бы создать макет меню пуск, которое вы будете распространять на управляемые машины, вы должны: 

  1. Установить весь необходимый софт, ярлыки которого будут присутствовать в макете
  2. Создать/залогиниться новым пользователем (опционально на самом деле)
  3. "Нарисовать" полное меню пуск со всеми нужными ярлыками (оно будет подстраиваться динамически, в зависимости от того, есть данное ПО на ПК или нет - ярлык будет или нет. На самом деле не совсем динамически)
  4. Выполнить экспорт макета меню пуск: 
Export-StartLayout -Path "C:\test\Marketing.xml" 

Возвращаемся к режимам конфигурирования макета - full или partial. Заходим в наш выгруженный макет и видим по умолчанию:

<DefaultLayoutOverride> - это режим full. 

Что бы сделать partial, нужно немного подправить:

<DefaultLayoutOverride LayoutCustomizationRestrictionType="OnlySpecifiedGroups">


В принципе, можно идти и распространять, тут есть варианты:

  1. Командлетом import-startlayout
  2. Local GPO
  3. GPO
  4. Сделать локальные настройки через реестр
На первом моменте останавливаться не будем, второй и третий - одинаковы, отличаются лишь уровнем применения GPO. Идем в GPO (данная настройка может быть применена как на пользователя, так и на компьютер):

Computer/User Configuration > Administrative Templates >Start Menu and Taskbar>Start Layout 

Для указания пути в реестре, необходимо два параметра:
  1. HKLM-HKCU\Software\Policies\Microsoft\Windows\Explorer\StartLayoutFile (REG_EXPAND_SZ) - обратите внимание, как он выглядит в реестре и в выгрузке в reg
  2. HKLM-HKCU\Software\Policies\Microsoft\Windows\Explorer\LockedStartLayout - значение 1.

Из полезностей и опыта:
  • Хранить макет в сети - не всегда лучшее решение, т.к. у локальной учетной записи может не быть доступа до сетевого ресурса, либо сетевой ресурс может быть недоступен, в итоге получите побитое меню пуск (3 недоярлыка)
  • Применять на уровне компьютера - тоже стоит подумать, т.к. локальной учетной записи это может быть не надо + можем получить пункт выше
  • Удобно доставлять на компьютеры макет локально (GPO/SCCM/etc) и ссылаться на него. Тогда он будет доступен для всех и всегда, плюс можно внести изменения даже при отсутствии связи с контроллером домена (SCCM/etc)
  • Макет применяется один раз, далее, если не менялся timestamp, то повторно он не применяется. Мы ведь собирали полный макет, где был, например, Microsoft Project, а у пользователя его не было. Мы доставляем Microsoft Project, но ярлык не появится, для этого мы должны обновить timestamp файла-макета и пользователь должен перелогиниться
  • Если вы хотите делать в макете ярлыки на какие-то папки/рабочие приложения, то нельзя просто указать, что сделай ярлык на папку с рабочего стола или шары. Макет умеет работать только с тем, что лежит в меню пуск, поэтому перед тем, как ссылаться на что-то - поместите ярлык на это что-то в папку с меню пуск

Вот дальше пойдут костыли с локальными настройками окружения. Продолжение следует.

1 комментарий: