Das manuelle Anheften und Lösen von Apps in Windows 11 kann mühsam sein, insbesondere wenn man es für mehrere Benutzer oder Installationen automatisieren möchte. Die üblichen Methoden, die früher funktionierten – Verknüpfungen in bestimmte Ordner kopieren oder im System32-Verzeichnis herumstöbern – reichen unter Windows 11 25H2 nicht mehr aus. Natürlich musste Microsoft die Sache komplizierter gestalten. Schnelle Skripte oder Copy-Paste-Tricks bringen in manchen Fällen also nichts mehr. Das ist ziemlich frustrierend, aber es gibt immer noch Möglichkeiten, das Problem zu umgehen, wenn man bereit ist, etwas tiefer in die Materie einzusteigen.
So heften oder lösen Sie Apps an die Taskleiste in Windows 11 mithilfe von PowerShell
Methode 1: Verwendung von XML-Layoutdateien für dauerhaftes Anheften
Diese Vorgehensweise ist besonders praktisch, wenn man ein benutzerdefiniertes Taskleisten-Layout auf mehreren Rechnern, beispielsweise in Unternehmensumgebungen, bereitstellen möchte. Man erstellt eine LayoutModification.xmlDatei, die genau beschreibt, welche Apps angeheftet werden sollen, und wendet sie dann per Gruppenrichtlinie oder manuell an. Für Einzelplatzinstallationen ist das allerdings etwas übertrieben, da es eher für die statische Bereitstellung gedacht ist.
Damit dies funktioniert, muss die XML-Datei mit dem korrekten Layout erstellt werden. Dazu erstellen Sie .lnkfür jede gewünschte App in der Taskleiste eine Verknüpfung ( ).Dies können klassische Win32-Anwendungen oder Apps aus dem Microsoft Store sein. Anschließend passen Sie die XML-Datei an, um diese Verknüpfungen einzubinden, und speichern sie unter %AppData%\Microsoft\Windows\Shell\LayoutModification.xml. Beim Neustart des Windows Explorers wird diese Datei gelesen und die Taskleiste entsprechend den Vorgaben konfiguriert.
Hier ein kurzes Beispiel. Angenommen, Sie möchten TCPView – ein Tool von SysInternals – fixieren, dann führen Sie folgenden Befehl in PowerShell aus:
$PinnedAppName = "tcpview64" $PinnedExePath = "C:\Tools\tcpview64.exe" $PinnedLnkPath = "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\$PinnedAppName.lnk" if (-not (Test-Path $PinnedLnkPath)) { $WshShell = New-Object -ComObject WScript. Shell $Shortcut = $WshShell. CreateShortcut($PinnedLnkPath) $Shortcut. TargetPath = $PinnedExePath $Shortcut. WorkingDirectory = Split-Path $PinnedExePath $Shortcut. IconLocation = $PinnedExePath $Shortcut. Save() } $xmlTemplate = @" "@ $xmlPath = "$env:LOCALAPPDATA\Microsoft\Windows\Shell\LayoutModification.xml" $xmlTemplate | Out-File -FilePath $xmlPath -Encoding UTF8 -NoNewline # Clean up previous layouts to avoid conflicts Remove-Item "$env:LOCALAPPDATA\Microsoft\Windows\Shell\DefaultLayouts" -Recurse -Force -ErrorAction SilentlyContinue # Restart Explorer to apply changes Stop-Process -Name explorer -Force Start-Sleep 6 Remove-Item $xmlPath -Force -ErrorAction SilentlyContinue
Diese Methode ist ziemlich praktisch, weil sie dynamisch ist – man ist nicht an ein statisches Profil gebunden. Wenn ein Benutzer die Verknüpfung löscht, wird sie von Windows nach einem Neustart nicht automatisch wiederhergestellt, was in manchen Fällen benutzerfreundlicher ist.
Beachten Sie: Wenn Sie mit Microsoft Store-Apps arbeiten, benötigen Sie deren AppUserModelID (AUMID).Diese Information erhalten Sie mit [Methode/Funktion einfügen] Get-AppxPackage -AllUsers | select PackageFamilyName. Ersetzen Sie anschließend in Ihrem XML-Code das <taskbar:DesktopApp>Tag durch etwas wie [Beispiel einfügen <taskbar:UWA AppUserModelID="Microsoft. WindowsTerminal_8wekyb3d8bbwe!App"/>].Das ist etwas komplizierter, funktioniert aber nach der Einrichtung.
Methode 2: Apps mithilfe von PowerShell-Verknüpfungen vom Anheften lösen
Das Entfernen von angehefteten Apps geht viel schneller. Sie müssen lediglich die App auswählen, die Sie entfernen möchten, und das Skript ausführen. Achten Sie auf den App-Namen – ein häufiger Fehler ist die falsche Angabe, dann passiert nichts. Sie können alle angehefteten Apps mit einem kleinen Skript wie diesem auflisten:
$shell = New-Object -ComObject Shell. Application $shell. Namespace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | Select-Object Name
Hier werden alle angehefteten Elemente aufgelistet – ganz praktisch, um den genauen Namen zu überprüfen. Sobald Sie den genauen Namen haben, können Sie die Anheftung mit einem Befehl wie diesem aufheben:
$appname = "tcpview64" $verbs = (New-Object -ComObject Shell. Application).Namespace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | Where-Object { $_. Name -eq $appname } | ForEach-Object { $_. Verbs() } if ($verbs -and $verbs | ForEach-Object { $_. Name -like '*Unpin from taskbar*' }) { $verbs | Where-Object { $_. Name -like '*Unpin from taskbar*' } | ForEach-Object { $_. DoIt() } "$appname has been unpinned." } else { "$appname not found or already unpinned." }
Ja, es ist etwas umständlich, aber es funktioniert. Im Prinzip geht es darum, den richtigen Befehl zum Lösen von Elementen aus der Taskleiste zu finden und ihn auszuführen. Bei manchen Systemen muss PowerShell als Administrator ausgeführt werden, damit die Befehle korrekt erkannt werden. Achtung: Windows verhält sich manchmal merkwürdig – auf manchen Rechnern schlägt der Befehl die ersten Male fehl, aber nach einem Neustart oder einem Neustart des Explorers funktioniert er einwandfrei.
Zusammenfassung
- Die Verwendung einer XML-Layoutdatei erleichtert die Bereitstellung einer einheitlichen Taskleistenkonfiguration per Gruppenrichtlinie oder manuell.
- Durch die Ausführung von PowerShell-Skripten zum Erstellen von Verknüpfungen wird das Anheften/Lösen von Verknüpfungen für einzelne Apps vereinfacht.
- Die Befehle zum Aufheben der Fixierung sind etwas weniger elegant, da sie auf Shell-Verben basieren und manchmal mehrere Versuche erfordern.
- Microsoft erschwert es Drittanbietern im Grunde, die Taskleiste zu manipulieren, aber mit etwas Geduld funktionieren diese Tricks immer noch.
Zusammenfassung
Insgesamt ist das Anheften und Lösen von Fenstern in Windows 11 aufgrund der vielen Sicherheitsmaßnahmen und Designänderungen nicht mehr so einfach wie zuvor. Wer sich jedoch mit XML-Dateien und Shell-Skripten auskennt, kann den Vorgang automatisieren oder zumindest vereinfachen. Man sollte aber bedenken, dass nicht alles perfekt funktioniert und man den Explorer manchmal mehrmals neu starten muss, bis es klappt. Hoffentlich hilft das jemandem, Zeit und Ärger zu sparen.