Restricting pinning or unpinning of programs on the Windows 11 taskbar is a common requirement in organizational environments, especially when maintaining a standardized desktop layout or preventing accidental changes. Windows 11 provides several methods to enforce taskbar pinning policies, primarily through Group Policy and XML configuration files. These approaches allow administrators to lock down the taskbar, ensuring users cannot add or remove pinned programs without authorization.
Method 1: Use Group Policy to Prevent Pinning and Unpinning
Step 1: Open the Group Policy Editor by pressing Win + R
, typing gpedit.msc
, and pressing Enter
. This tool allows you to configure policies that affect user behavior across the system.

Step 2: In the Group Policy Editor, navigate to User Configuration > Administrative Templates > Start Menu and Taskbar
. This section contains taskbar and Start menu-related settings.

Step 3: Find and double-click the policy named Do not allow pinning programs to the Taskbar
. This policy, when enabled, prevents users from pinning or unpinning any programs to the taskbar. It applies to all users on the device, including administrators, unless the policy is specifically disabled or filtered.

Step 4: Set the policy to Enabled
, then click Apply
and OK
. The change takes effect after the next user logon or policy refresh.

Method 2: Configure Taskbar Pins Using XML Layout File
For organizations requiring precise control over which applications appear pinned on the taskbar, Windows 11 supports taskbar configuration via an XML layout file. This approach allows administrators to define a fixed set of pinned apps, their order, and whether default pins are replaced or appended.
Step 1: Create a new XML file based on the Windows taskbar layout schema. The file must follow the required structure, including the <CustomTaskbarLayoutCollection>
and <taskbar:TaskbarPinList>
nodes. Each pinned app is defined by either its Application User Model ID (AUMID) for UWP apps or Desktop Application ID/Link Path for classic apps.
<?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:UWA AppUserModelID="windows.immersivecontrolpanel_cw5n1h2txyewy!microsoft.windows.immersivecontrolpanel" />
<taskbar:DesktopApp DesktopApplicationID="Microsoft.Windows.Explorer"/>
</taskbar:TaskbarPinList>
</defaultlayout:TaskbarLayout>
</CustomTaskbarLayoutCollection>
</LayoutModificationTemplate>
Setting PinListPlacement="Replace"
ensures only the specified apps are pinned, removing all default pins. To append to the defaults, omit this attribute.
Step 2: Deploy the XML file using one of the following methods:
- Group Policy: In
Computer Configuration > Administrative Templates > Start Menu and Taskbar
, set theStart Layout
policy to the path of your XML file. - Microsoft Intune: Create a Settings Catalog policy and use the
Start Layout
setting, pasting the XML content. - Configuration Service Provider (CSP): Use the
./User/Vendor/MSFT/Policy/Config/Start/StartLayout
OMA-URI with the XML as the value. - Provisioning Package (PPKG): Import the XML as a single line under
Policies/Start/StartLayout
when creating the package.
Step 3: After deploying the policy, users must sign out and sign in again to see the enforced taskbar layout. Any attempt to pin or unpin apps will be overridden by the policy at the next refresh cycle (typically every 8 hours for CSP, on explorer.exe
restart for PPKG, or after a GPO update).
Administrators can update the XML file to change pinned apps as needed. If users are allowed to unpin certain apps, the PinGeneration
attribute (Windows 11 23H2/24H2 and later) can be used to let unpinned apps stay removed until the attribute value is incremented.
Method 3: Troubleshooting and User Experience Considerations
Some users report issues where unpinned apps (such as Microsoft Edge or OEM utilities) reappear on the taskbar after each reboot, even when policies are not in place. This behavior is often caused by:
- OEM or third-party software that repins apps on startup.
- Residual scheduled tasks or startup items set by bundled utilities.
- Profile or permissions issues that prevent changes from being saved.
- Active Group Policy or XML layout enforcement, as described above.
To address persistent repinning:
- Uninstall or disable OEM utilities responsible for automatic pinning.
- Check
Task Scheduler
andStartup
entries for relevant tasks or apps. - Ensure your user profile is not set to 'read-only' or has restrictions that block saving taskbar changes. Check
%APPDATA%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar
for the presence of shortcut files after pinning. - Disable 'Fast Startup' in Windows settings to ensure session changes are written properly.
For advanced troubleshooting, use PowerShell to list and manage pinned taskbar items:
$taskbarPath = "$env:APPDATA\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar"
$taskbarItems = Get-ChildItem -Path $taskbarPath -Filter "*.lnk"
Write-Output "Pinned Taskbar Items:"
$taskbarItems | ForEach-Object { $_.Name }
Remove unwanted links using Remove-Item
and unpin manually if needed. If issues persist after these steps, review any organizational policies or consult IT support for further investigation.
Applying Group Policy or XML configuration provides reliable ways to control taskbar pinning in Windows 11. For most environments, Group Policy is the most straightforward option, while XML layouts offer granular control for enterprise deployments. Regularly review user feedback and update policies as needed to maintain a consistent desktop experience.
Member discussion