
In this Ask the Admin, I will show you how to pin apps to the taskbar using Group Policy in Windows 10 Anniversary Update.
Back in 2014, I showed you how to Customize the Start Menu in Windows 10 using the Export-StartLayout PowerShell cmdlet on the Petri IT Knowledgebase. Last summer’s Anniversary Update expanded the Group Policy settings and provided a supported way of customizing the taskbar.
To customize the taskbar, we will need to manually create an XML file. If you want to customize both the taskbar and Start menu, you can add code to an XML file generated by Export-StartLayout. The code below pins Paint, IE, and Outlook Calendar to the taskbar. By adding PinListPlacement=”Replace” to <CustomTaskbarLayoutCollection>, the default pinned apps are replaced by those specified in the file.
<?xml version="1.0" encoding="utf-8"?>
<LayoutModificationTemplate
xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification"
xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout"
xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout"
xmlns:taskbar="http://schemas.microsoft.com/Start/2014/TaskbarLayout" Version="1">
<CustomTaskbarLayoutCollection PinListPlacement="Replace">
<defaultlayout:TaskbarLayout>
<taskbar:TaskbarPinList>
<taskbar:DesktopApp DesktopApplicationLinkPath="%APPDATA%MicrosoftWindowsStart MenuProgramsAccessoriesInternet Explorer.lnk"/>
<taskbar:DesktopApp DesktopApplicationLinkPath="%ALLUSERSPROFILE%MicrosoftWindowsStart MenuProgramsAccessoriesPaint.lnk" />
<taskbar:UWA AppUserModelID=" microsoft.windowscommunicationsapps_8wekyb3d8bbwe!microsoft.windowslive.calendar" />
</taskbar:TaskbarPinList>
</defaultlayout:TaskbarLayout>
</CustomTaskbarLayoutCollection>
</LayoutModificationTemplate>
UWP apps are identified in an XML file using the AppUserModelID and win32 desktop apps are identified by the executable path. Unfortunately, the only way to get the AppUserModelID for each UWP app is to export an existing Start menu layout. This is done by using the Export-StartLayout cmdlet. You will open the resulting XML file and search for the AppUserModelID manually. The .PackageFamilyName parameter returned by the Get-AppXPackage cmdlet is similar to AppUserModelID but it is not the same.

Make sure that any apps you want to get the AppUserModelID for, are pinned to the Start menu. Open a PowerShell prompt and run the Export-StartLayout cmdlet as shown below. The temp folder must already exist.
Export-StartLayout c:tempstart.xml
Open start.xml using Notepad. Locate the apps and the individual AppUserModelIDs.
Now that we have a working layout file, all that remains is to create a Group Policy Object (GPO). This is needed to apply the configuration to devices in our Active Directory domain. For more information on working with Group Policy, see Working with Group Policy on Petri.
After Group Policy is refreshed on devices that fall within the scope of the new GPO, users will need to log out. They will need to log back in again before seeing changes to the taskbar. A Group Policy refresh can be forced using the gpudpate command.
In this article, I showed you how to customize the taskbar in Windows 10 Anniversary Update using Group Policy. The GPO pin to taskbar method provides a seamless way to apply these configurations across your network.
No. GPO pin to taskbar functionality requires an Active Directory environment. For non-AD environments, you’ll need to use alternative methods like PowerShell scripts or third-party management tools to deploy taskbar configurations.
Yes, the GPO pin to taskbar functionality extends to Windows 11, though some syntax and configuration options may differ. You’ll need to ensure your XML layout file is compatible with Windows 11’s taskbar structure.
Yes, when implementing GPO pin to taskbar policies, you can lock down the taskbar configuration by enabling additional Group Policy settings that prevent users from modifying the pinned items.
When deploying GPO pin to taskbar configurations with PinListPlacement=”Replace”, it will override any existing user customizations. To preserve user modifications, you’ll need to use the “Append” option instead.
GPO pin to taskbar settings typically apply during the standard Group Policy refresh interval (90-120 minutes by default). However, changes may require a user logout/login cycle to take full effect.