С помощью групповых политик вы можете создать ярлык на определенное приложение, сайт или сетевую папку на рабочем столе всех (или только определенных) пользователей домена. В этой статье, мы покажем, как создавать ярлыки на рабочих столах пользователей с помощью предпочтений GPO (Group Policy Preferences, GPP).
Предпочтения групповых политик позволяют создать ярлык на локально установленное приложение, исполняемый файл приложения в сетевой папке (по UNC пути), URL адрес или элемент панели управления.
Создать ярлык рабочего стола для всех пользователей с помощью GPO
Предположим, ваша задача – создать на рабочем столе всех пользователей домена ярлык, ссылающийся на исполняемый файл приложения, которое хранится в сетевой папке (подразумевается некое portable приложение, работающее без установки).
В нашем примере UNC путь к исполняемому файлу приложения выглядит так
\\s-dc01\APPS\TCPView\tcpview.exe
. Проверьте, что в разрешениях сетевой папки дан как минимум
Read+Execute
доступ для Authenticated Users или Users.
- Откройте консоль управления Group Policy Management Console (gpmc.msc), щелкните ПКМ по контейнеру AD, к которому нужно применить политику создания ярлыка, и создайте новую политику (объект GPO) с именем CreateShortcut;
- Чтобы настроить политику, щелкните по ней и выберите Edit;
- Перейдите в раздел предпочтений групповых политик (Group Policy Preferences) User Configuration –> Preferences -> Windows Settings -> Shortcuts. Выберите New -> Shortcut;
- Создайте новый ярлык со следующими настройками:
Name: TCPView
(имя ярлыка)Target Type: File System Object
(здесь также можно выбрать URL адрес или объект Shell)Location: Desktop
(поместить ярлык на рабочий стол текущего пользователя)
Здесь можно указать одно из 15 встроенных расположений для ярлыка. Например, меню Пуск (Start Menu), автозагрузку (Startup), рабочий стол всех пользователей компьютера (All Users Desktops).Target Path: \\s-dc01\APPS\TCPView\tcpview.exe
(путь к файлу, на который нужно создать ярлык)Arguments: можно указать дополнительные аргументы для запуска программы (если требуется) Icon file path: здесь указывается путь к иконке ярлыка. Можно воспользоваться кастомным ICO файлом, или стандартной библиотекой с типовыми иконками Windows ( %SystemRoot%\System32\SHELL32.dll
). Если в файле доступно несколько иконок, номер иконки в dll нужно указать в поле Icon Index.В пути к программе можно использовать различные переменные окружения. Например%WindowsDir%\notepad.exe
,%ProgramFilesDir%\app\app.exe
,%ProgramFiles(x86)%\app.exe
. Полный список доступных переменных окружения, которые можно использовать в пути можно вывести, нажав F3 в окне настройки ярлыка в GPP. - Если вы выбрали, что ярлык нужно поместить на рабочий стол текущего пользователя, на вкладке “Common” нужно включить опцию Run in logged-on user’s security context (user policy option);
- Если нужно создать ярлык программы в Public профиле (для всех пользователей компьютера), выберите опцию Location =
All User Desktop
(опцию “Run in logged-on user’s security context” нужно отключить, т.к. у обычных пользователей нет прав для модификации Public профиля); - Сохраните изменения. Обратите внимание, что в консоли GPO отображается переменные окружения для Desktop (
%DesktopDir%
) и%CommonDesktopDir%
для All User Desktop (переменная%CommonDesktopDir%
считается deprecated и вместо нее лучше использовать формат%Public%\Desktop
). - Если вы в настройках политики указываете сетевой UNC путь к файлу с иконкой ярлыка (
*.ico
), дополнительно нужно включить параметр GPO Allow the use of remote paths in file shortcut icons в Computer Configuration -> Administrative Templates -> Windows Components -> File Explorer. Без этой политики ярлык иконки не будет отображаться (вы увидите только иконку в виде простого белого листа). - Обновите настройки политик на клиентах (gpupdate /force или выполните логофф/логон).Если вы назначили GPO на Organizational Unit с компьютерами (не пользователями), нужно дополнительно включить опцию замыкания GPO. Установите Configure user Group Policy loopback processing mode = Merge в секции Computer Configuration -> Policies -> Administrative Templates -> System -> Group Policy;
- После обновления политик на рабочем столе пользователя должен появится новый ярлык.
Если ярлык не появился, проверьте логи групповых политик в консоли Event Viewer. Перейдите в журнал Applications и отфильтруйте его по источнику Group Policy Shortcuts.
В моем случае, из ошибки понятно, что ярлык не был создан, потому что указан неверный путь к исходному файлу:
The user 'TCPView' preference item in the 'gpoCreateAppShortcuts {272F01C7-AEA6-4684-A488-15D93B0D65F9}' Group Policy Object did not apply because it failed with error code '0x80070002 The system cannot find the file specified.' This error was suppressed.
GPO: Создать ярлык только для опредленных пользователей
Если вы хотите, чтобы политика создавала ярлыки только на рабочих столах определенных пользователей, нужно воспользоваться Item-Level Targeting в GPP.
- Создайте в домене группу безопасности, в которую добавьте всех пользователей, к которым должна применяться политика создания ярлыков.
- Откройте свойства ярлыка в консоли редактора групповых политик, передите на вкладку Common, включите опцию “Item-level targeting”, нажмите кнопку “Targeting”.
- Выберите New Item -> Security Group и выберите доменную группу пользователей. В результате ярлык будет появляться только у пользователей, добавленных в указанную группу безопасности Active Directory;
В одной GPO можно создать несколько правил создания ярлыков для разных групп пользователей, компьютеров или OU (см. скриншот).
- Ярлык на сетевую папку (можно использовать вместо подключемых через GPO сетевых дисков)
- Ярлык на RDP файл подключения к RDS серверу
- Ярлык на команду LogOff, для быстрого завершения сессии пользователем (
logoff.exe
или shutdown.exe с аргументом /l)
Я бы еще добавил, что находясь в окне создания ярлыка и поля с указанием пути, можно нажать F3, чтобы получить список доступных для указания переменных, т.к. они отличаются от используемых в системах.
И обратить внимание на чекбокс Resolve Variable. В некоторых задачах может потребоваться указать переменную без преобразования в путь.
Про F3 спасибо, а вот про Resolve Variable не понял. Это где такой?
Я создаю ярлыки на «Общем рабочем столе» (для всех пользователей) следующим образом:
1. Выбираю «Computer Configuration»
2. Вручную ввожу путь размещения ярлыка %Public%\Desktop\[требуемое имя ярлыка].
Таким образом ярлык создается при включении компьютера
Пробовал в Computer Configuration выбирать настройку All Users Desktop, но так у меня политика применялась, я ярлык не создавался.
Уровень домена: 2008R2
Т.е. не срабатывает именно встроенная переменная окружения «All Users Desktop». А какая ОС на клиентах?
Если политика назначена, но ярлык не создается, смотрите события в журнале Application от источника Group Policy Shortcuts.
Один раз у меня была ошибка
The computer 'xx' preference item in the 'xxxx' Group Policy Object did not apply because it failed with error code '0x80070002 The system cannot find the file specified.' This error was suppressed.
Проблема была в том, что был указан неправильный путь к файлы (с кавычками).
Второй раз:
The user 'xxx' preference item in the 'xxxxx' Group Policy Object did not apply because its targeting item failed with error code '0x80072af9 No such host is known.' This error was suppressed.
— неправильные настройки item level targeting.При этом в отчете gpresult была ошибка:
Result: Failure (Error Code: 0x80070002)
В GPO «Конфигурация компьютера» пытался распространить ярлык на сетевую папку в общем рабочем столе на компьютеры в домене. Ярлык не создавался.
После изучения англоязычных форумов — выяснил что нужно дать доступ на чтение к расшаренной папке на группу компьютеров «Компьютеры домена», в «Разрешения для общего ресурса».
Теперь ярлык создается корректно. Даже на Windows 10, с переменной %CommonDesktopDir%.
а если я хочу распространить ярлык на программу скажем которая не установлена на данном контроллере ,а она сама находится на конечных терминалов и ярлык находится в шаре
какие права нужно выдать чтобы политика отрабатывалась?
Политике непринципиально куда ссылается ярлык. это может быть и локальный путь и unc путь
А как включить у всех компьютеров, чтобы автоматом отобразился «Этот компьютер» на всех рабочих столах в домене?
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel]
"{20D04FE0-3AEA-1069-A2D8-08002B30309D}"=dword:00000000
Если с ним ярлык показывается, можно раскатать его через GPO
https://winitpro.ru/index.php/2016/01/19/nastrojka-klyuchej-reestra-s-pomoshhyu-gruppovyx-politik/
Здравствуйте!
А как через gpo наоборот — удалить ярлык у всех пользователей AD? домен windows 2016
У вас ярлык у всех одинаковый? если да — в этом жем GPO есть отдельная опция Delete.
Если ярлыки разные (пользователи их создавали сами), я удалял такие с помощью логон скрипта powershell:
В этом примере я удаляю все ярлыки с public рабочего стола, которые указывают на определенный exe (неважно как называется сам ярлык):
$WScript = New-Object -ComObject WScript.Shell
$ShortcutsToDelete = Get-ChildItem -Path "C:\Users\Public\Public Desktop\" -Filter "*.lnk" -Recurse |
ForEach-Object {
$WScript.CreateShortcut($_.FullName) |
Where-Object TargetPath -eq 'C:\windows\system32\notepad.exe'
}
$ShortcutsToDelete | ForEach-Object {
Remove-Item -Path $_.FullName
}
Хочу создать пользователям ярлык через GPO на внешнюю сетевую папку с паролем. Пароль на папку не доменный. Надо чтобы пользователь сам вводил пароль к папке при открытии ярлыка.
Если создавать такой ярлык, то после применения политики он не появляется у пользователя , а в журнале пишется ошибка:
The computer ‘xx’ preference item in the ‘xxxx’ Group Policy Object did not apply because it failed with error code ‘0x80070002 The system cannot find the file specified.’ This error was suppressed.
Как создать такой ярлык?
Проверьте, что указали правильный путь к файлу. Возможно нужно убрать кавычки. По возможности использовать путь без пробелов и русских символов.
А как правильно настроить, чтобы ярлык появился только на некоторых пользователей?
В статье описана реализация item level targeting через группу безопасности в AD.
Добавьте в эту группу ныжных пользователей, тчобы на них применилась политика и создался ярлык.
Здравствуйте, нужно на рабочих столах доменных пользователей создать ярлык на программу, находящуюся в ‘Program Files (x86)’, хоть у большинства пользователей системным является диск C, было бы все равно лучше использовать системную переменную, однако в меню F3 такой вроде нет, а насчет работоспособности %ProgramFiles(x86)% я не уверен.
Из других вопросов — у нас в домене для компьютеров и учетных записей имеются разные политики, есть ли разница в какой создавать ярлык?
Сам спросил — сам ответил:
Переменная %ProgramFiles(x86)% работает, ошибся именно в политике где создал ярлык, нужная политика учетных записей.
Здравствуйте, не работает создание ярлыков для Windows 10 и новее пока не включишь на клиенте поддержку SMB 1.0/CIFS. Есть ли способ этой обойти? Используется WinServer 2008 R2
Ярлык кстати создается на сопоставленный диск (S:), параметры ярлыка:
Действие: Обновить
Тип объекта: Объект файловой системы
Путь ярлыка: %DesktopDir%\Сетевые папки
Конечный путь: S:\
Рабочая папка: S:\
Быстрый вызов: None
Запустить: Обычный размер окна
Остановить обработку элементов на этом расширении, если на этом элементе возникает ошибка: Нет
Запуск в контексте безопасности текущего пользователя (параметр пользовательской политики): Да
Удалить этот элемент, если он больше не применяется: Нет
Применить один раз и не применять повторно: Нет
Судя по описанию, вы пытаетесь подключить SMB диск с Windows Server 2008R2 — он умеет SMBv2 и клиент Windows 10 тоже включает клиент для протокола SMB2. По логиге SMB1 не нужен.
Но вероятно, либо в Windows 2008R2 отключен SMB2, либо в клиенте WIndows 10.
Я бы сначала вручную проверил, может ли клиент w10 открыть сетевую папку на 2008r2 без клиента smb1, потом проверил поддержку smbv2 на обоих концах.
https://winitpro.ru/index.php/2014/12/01/podderzhka-smb-1-0-v-windows-server-2012-r2/
А как распространить ярлык на ftp каталог? Голову сломала… Распространить готовый линк как файл не выходит, ибо линк это не файл. А если распространяю ярлык, то урл открывается в интернет обозревателе. А мне надо, чтоб открывалось в проводнике
Попробуйте такой ярлык:
%windir%\explorer.exe ftp:///
Если не поможет, надо думать про настройки ассоциации File Explorer с FTP:\
Да, вариант с прописью проводника тоже нарыла и испробовала, но увы, не работает. На файл или урл прекрасно ярлычки пробрасываются, а вот по моему вопросу даже инфы никакой практически нет в сети. Вручную пока делаю на каждой машине, благо нуждающихся в этом ярлыке не много
а какие два варианта пробовали? и как вручную делали?
я на ftp делал так ярлык на рабочем столе:
Тип объекта: Объект файловой системы
Конечный путь:
%windir%\explorer.exe
Аргументы:
ftp://.....
Хочу отметить что если вы указываете unc-путь к файлу иконок ярлыка , то Win10 и выше не будут их корректно отображать. Надо дополнительно в политику добавить следующее:
Open Group Policy Editor
Navigate to, Computer Configuration > Administrative Templates > Windows Components > File Explorer
Enable «Allow the use of remote paths in file shortcut icons»
On top of the above steps, you may also need to create a registry key:
Open Registry Editor
Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Explorer
Create a new DWORD key Value Name EnableShellShortcutIconRemotePath Value Type REG_DWORD Enabled Value 1 Disabled Value 0
Взято из https://learn.microsoft.com/en-us/answers/questions/1162419/shortcut-icon-blank-when-ico-file-is-located-on-a?source=docs
Алексей, спасибо
После очередного обновления слетели иконки, не мог понять куда копать
Тоже столкнулся с тем, что с какого-то момента настройки иконки не работают.
белый значок в итоге
Решается включением GPO «Allow the use of remote paths in file shortcut icons».
Вероятно MSFT посчитали, что по умолчанию не безопасно иметь UNC путь в иконке. Поэтому нужно отдельно разрешить это через политику
Спасибо!
Когда нужно копировать файл на рабочий стол в Public профиль, не надо выбирать в качестве location All User Desktop. Это не будет рабоать, т.к. переменная
%CommonDesktopDir%
— это deprecated путь.Вместо это го нужно указать полный путь в имени ярлыка например
%Public%\Desktop\TCPview
, а в location выбратьSpecify full path
.