Информация о закрепленных элементах на начальном экране и на панели задач хранится в следующих ключах:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{...}\Count
а также
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\TaskBand
К сожалению, все значения ключей являются зашифрованными двоичными объектами, поэтому вы не можете редактировать их напрямую. Кроме того, нет групповой политики, которая контролирует ее. Microsoft сделала это намеренно, чтобы отговорить поставщиков приложений от того, что они навешивают на себя свое программное обеспечение. Я считаю , это оправдание смехотворно, так как это не останавливает теневые программистов от себя плохо на всех, но делает это боль для вас , чтобы выполнять законные административные функции.
Модификация панели задач программным способом требует написания скрипта, который имитирует щелчок правой кнопкой мыши по элементу в меню «Пуск» и нажатие кнопки «Закрепить / открепить на панели задач», например, так:
Dim objShellApp
Dim objWMI
Dim objVerb
Dim objScreen
Dim objProcess
Dim colVerbs
Dim colScreens
Dim colProcesses
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
Set objShellApp = CreateObject("Shell.Application")
Set objWMI = GetObject("winmgmts:\\.\root\CIMV2")
'Remove Windows Media Player from Taskbar
If objFS.FileExists(objShell.SpecialFolders("AllUsersPrograms") & "\Windows Media Player.lnk") Then
Set colVerbs = objShellApp.Namespace(objShell.SpecialFolders("AllUsersPrograms")).ParseName("Windows Media Player.lnk").Verbs
For Each objVerb in colVerbs
If objVerb.Name = "Unpin from Tas&kbar" Then
objVerb.DoIt
Exit For
End If
Next
End If
'Add Microsoft Outlook to Taskbar
If objFS.FileExists(objShell.SpecialFolders("AllUsersPrograms") & "\Microsoft Office\Microsoft Outlook 2010.lnk") Then
Set colVerbs = objShellApp.Namespace(objShell.SpecialFolders("AllUsersPrograms") & "\Microsoft Office").ParseName("Microsoft Outlook 2010.lnk").Verbs
For Each objVerb in colVerbs
If objVerb.Name = "Pin to Tas&kbar" Then
objVerb.DoIt
Exit For
End If
Next
End If
Измените скрипт для любых элементов, которые вы хотите закрепить / открепить. Вам понадобится этот скрипт для запуска в контексте входа каждого пользователя. Вы не можете сделать это навалом. Следовательно, вам нужно будет скопировать этот сценарий в раздел реестра RunOnce в кусте реестра каждого пользователя.
Или можно добавить строку в конце файла сценария, чтобы он покончил с собой, когда это будет сделано, и поместить его в папку «Автозагрузка» каждого пользователя (включая пользователя по умолчанию, чтобы он применялся при входе новых пользователей).
objFS.DeleteFile WScript.ScriptFullName
В любом случае, вы не хотите добавлять его в профиль «Все пользователи». Вы должны убедиться, что он запускается только один раз для каждого пользователя в его собственном пользовательском контексте, и никогда не запускать его снова (чтобы это не разрушило их настройки).