Created attachment 19521 [details] Один из примеров групповой политики Имеется домен AD. В качестве ОС на рабочих станций выступают Windows и Alt Linux 10. Имеются групповые политики для распространения различных файлов на рабочие станции и создание ярлыков к этим файлам, изначально написанные для Windows, параметры могут быть установлены как для Компьютера, так и для Пользователя. В качестве путей активно используются переменные окружения, в частности: ALLUSERSPROFILE COMPUTERNAME HOMEDRIVE HOMEPATH LOCALAPPDATA PROGRAMDATA PROGRAMFILES PROGRAMFILES(x86) SYSTEMDRIVE SYSTEMROOT USERDOMAIN USERNAME USERPROFILE WINDIR TEMP TMP При применении групповых политик на АльтЛинукс можно наблюдать ситуацию, что в профиле пользователя или в корне создаются директории вида '%<имя_переменной>%', в которые кладутся файлы, а у созданных ярлыков в качеству путей указаны переменные Windows как есть. При этом переменная %DesktopDir% отрабатывается нормально. Чтобы подобные групповые политики бесшовно применялись на Windows и на Аль Линуксе, необходимо либо внедрить в Альт Линукс обработку wmi-фильтров, либо корректно обрабатывать большинство переменных Windows как аналогичные пути в Linux. Например на такие: ALLUSERSPROFILE="/usr/local/share" COMPUTERNAME="$(hostname)" HOMEDRIVE="/" HOMEPATH="$HOME" LOCALAPPDATA="$HOME/.local/share" PROGRAMDATA="/usr/local/share" PROGRAMFILES="/usr/local" PROGRAMFILES(x86)="$PROGRAMFILES" SYSTEMDRIVE="/" SYSTEMROOT="/" USERDOMAIN="$(hostname -d)" USERNAME="$USER" USERPROFILE="$HOME" WINDIR="/usr" Так же если данные переменные станут доступны в качестве переменных окружения в профиле пользователя или root, то это тоже упростит написание универсальных сценариев.
PROGRAMFILES="/usr/bin" Так, наверное, лучше было бы.
Список допустимых переменных (для систем ОС «Альт») есть в документации: https://docs.altlinux.org/ru-RU/alt-domain/11.0/html/alt-domain/folders.html
К сожалению, их не достаточно.
(Ответ для itteh на комментарий #3) > К сожалению, их не достаточно. Работа в этом направлении ведётся. В планах — добавление поддержки самых частых переменных, которые имеют смысл в Linux-контексте. Следите за обновлениями.
(Ответ для Шевченко Денис на комментарий #4) > (Ответ для itteh на комментарий #3) > > К сожалению, их не достаточно. > > Работа в этом направлении ведётся. > В планах — добавление поддержки самых частых переменных, которые имеют смысл > в Linux-контексте. Следите за обновлениями. Благодарю!
Воспроизводится в Sisyphus, версия gpupdate-0.13.4-alt1 Переквалифицировал данную ошибку в Feature Request, так как в документации (например, https://docs.altlinux.org/ru-RU/alt-domain/11.0/html/alt-domain/folders.html) указаны переменные, которые обрабатываются политиками на данный момент.
Created attachment 19595 [details] Доработка функций expand_windows_var и transform_windows_path В функцию expand_windows_var добавлены дополнительные переменный из Windows. Так же исправлена корректная замена переменных Windows за счёт использования регулярного выражения без привязки к регистру. В transform_windows_path применено безусловная замена "\" на "/". Старое поведение обрабатывало только пути, заканчивающие на "exe".
Created attachment 19596 [details] Доработка функции read_shortcuts Теперь в для Exec и Icon так же заменяются переменные Windows на пути Linux. Если конечный файл для Exec не является исполняемым или начинается с протоколов http, https, ftp, file, то для таких путей добавляется xdg-open, что позволяет корректно создавать ярлыки для документов, веб-страниц или файлов приложений (например, можно распространять готовые rdp-файлы для терминальных подключений, телефонные справочники и т.п.). К сожалению, xdg не может корректно работать с файлами, размещёнными в сетевых папках по протоколу smb. В частности, для KDE открывается Dolphin, но крайне криво из-за того, что Dolphin пытается открыть файл как каталог по пути "smb://fileserver/share_dir/file.docx/".
Предложенные исправления подготовлены для gpupdate-0.13.2-alt1.noarch из Альт Линукс р10. В р11 эти правки так же работают.
Спасибо за предложенный патч, в ближайшее время рассмотрим возможность его принятия в проект.
gpupdate-0.15.0-alt1 -> sisyphus: Wed Apr 15 2026 Valery Sinelnikov <greh@altlinux> 0.15.0-alt1 - Added: GPP lifecycle management (applyOnce, removePolicy, disabled) Targeting filters for GPP preferences (computer, domain, user, group, date) Secure permissions and ownership for sensitive paths INI file special characters policy support INI file edit without section support Skip writing INI values that already match target - Changed: Optimized Windows variable expansion (closes:55948) Refactored filter checking with caching and thread safety - Fixed: Persist applyOnce flag to dconf so it works across GPOA runs Fix systemd unit enabling after unmask (closes:56049, 55954) Fix user-dirs.dirs for non-C locales (closes:54590) Fix gpupdate-setup help text typo (closes:56674)