Du bist es leid, den Microsoft Store auf deinen Intune-verwalteten Geräten in der Taskleiste zu sehen? Hier erfährst du, wie du den Store mithilfe von Intune schnell und einfach aus der Taskleiste entfernen kannst.

Table of Contents

Why Should I remove the Store from the taskbar?

In den meisten von mir verwalteten Umgebungen ist die Verwendung des Microsoft Stores blockiert, besonders wenn CIS-Baselines Level 1 oder höher implementiert sind. Selbst wenn die Store-Nutzung blockiert ist, bleibt er auf dem Gerät, um Store-Anwendungen zu aktualisieren. Wenn der Store in prominenter Position wie der Taskleiste sichtbar ist, besteht die Gefahr, dass der Benutzer darauf klickt und die Meldung "Microsoft Store ist blockiert… Kontaktiere deinen Systemadministrator" sieht. Das kann zu unnötiger Verwirrung und Supportanfragen führen.

Alte/Alternative Methoden zur Entfernung des Stores aus der Taskleiste

Registry-Anpassung

Eine einfache Möglichkeit ist die Einstellung über einen Registry-Schlüssel zu setzen.
Der Haken: Du musst das Gerät neu starten, damit die Änderung wirksam wird.

Hier ist aber der entsprechende Eintrag, der gesetzt werden muss:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Explorer]
"NoPinningStoreToTaskbar"=dword:00000001
Code language: JavaScript (javascript)

PowerShell Skript

Möchtest du mehr Kontrolle und Flexibilität? Entscheide dich für ein PowerShell-Skript im Benutzerkontext. Dieses Skript entpinnt den Store automatisch und berücksichtigt verschiedene Betriebssystemsprachen.

Eine Sache, die für mich eine kleine Herausforderung darstellte, waren die verschiedenen Betriebssystemsprachen. Denn der Befehl "Unpin" ist in jeder Sprache anders. Zum Beispiel heisst es in Englisch "Unpin from taskbar" und in Deutsch "Von Taskleiste lösen".

Deshalb verwende ich in meinem Skript eine eigene Funktion namens "Get-TaskVerb". Diese Funktion liefert unabhängig von der Sprache den richtigen Befehl.

Hier ist das Skript:

unction Get-TaskVerb { 
    param([int]$verbId) 
    try { 
        $t = [type]"CosmosKey.Util.MuiHelper" 
    } catch { 
        $def = [Text.StringBuilder]"" 
        [void]$def.AppendLine('[DllImport("user32.dll")]') 
        [void]$def.AppendLine('public static extern int LoadString(IntPtr h,uint id, System.Text.StringBuilder sb,int maxBuffer);') 
        [void]$def.AppendLine('[DllImport("kernel32.dll")]') 
        [void]$def.AppendLine('public static extern IntPtr LoadLibrary(string s);') 
        add-type -MemberDefinition $def.ToString() -name MuiHelper -namespace CosmosKey.Util             
    } 
    if($global:CosmosKey_Utils_MuiHelper_Shell32 -eq $null){         
        $global:CosmosKey_Utils_MuiHelper_Shell32 = [CosmosKey.Util.MuiHelper]::LoadLibrary("shell32.dll") 
    } 
    $maxVerbLength=255 
    $verbBuilder = new-object Text.StringBuilder "",$maxVerbLength 
    [void][CosmosKey.Util.MuiHelper]::LoadString($CosmosKey_Utils_MuiHelper_Shell32,$verbId,$verbBuilder,$maxVerbLength) 
    return $verbBuilder.ToString() 
} 

$apps = ((New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items())
foreach ($app in $apps){
    $appname = $app.Name
    if ($appname -like "*store*"){
        $finalname = $app.Name
    }
}

if($finalname){
    Write-Log "Unpin Store from taskbar"
    $UnpinCommand = Get-TaskVerb 5387
    ((New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | Where-Object{$_.Name -eq $finalname}).Verbs() | Where-Object{$_.Name -match "$UnpinCommand"} | ForEach-Object{$_.DoIt(); $exec = $true}
}

Wichtig: Dieses Skript wird nur einmal ausgeführt, was eine gute Option ist, wenn du dem Benutzer die Möglichkeit geben möchtest, das Symbol bei Bedarf hinzuzufügen.

Proactive Remediations

Diese advanced Methode bietet kontinuierliches Monitoring und Remediation. Verwende das PowerShell-Skript für automatisches Entfernen des Stores, das bei Bedarf immer wieder gemacht wird.

1. Detection Script:

function Get-TaskVerb { 
    param([int]$verbId) 
    try { 
        $t = [type]"CosmosKey.Util.MuiHelper" 
    } catch { 
        $def = [Text.StringBuilder]"" 
        [void]$def.AppendLine('[DllImport("user32.dll")]') 
        [void]$def.AppendLine('public static extern int LoadString(IntPtr h,uint id, System.Text.StringBuilder sb,int maxBuffer);') 
        [void]$def.AppendLine('[DllImport("kernel32.dll")]') 
        [void]$def.AppendLine('public static extern IntPtr LoadLibrary(string s);') 
        add-type -MemberDefinition $def.ToString() -name MuiHelper -namespace CosmosKey.Util             
    } 
    if($global:CosmosKey_Utils_MuiHelper_Shell32 -eq $null){         
        $global:CosmosKey_Utils_MuiHelper_Shell32 = [CosmosKey.Util.MuiHelper]::LoadLibrary("shell32.dll") 
    } 
    $maxVerbLength=255 
    $verbBuilder = new-object Text.StringBuilder "",$maxVerbLength 
    [void][CosmosKey.Util.MuiHelper]::LoadString($CosmosKey_Utils_MuiHelper_Shell32,$verbId,$verbBuilder,$maxVerbLength) 
    return $verbBuilder.ToString() 
} 

$apps = ((New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items())
foreach ($app in $apps){
    $appname = $app.Name
    if ($appname -like "*store*"){
        $finalname = $app.Name
    }
}

if($finalname){
    Write-Host "Store is pinned to the Taskbar!"
    exit 1
}
else {
    Write-Host "Store not pinned. "
    exit 0
}

2. Remediation Script:

function Get-TaskVerb { 
    param([int]$verbId) 
    try { 
        $t = [type]"CosmosKey.Util.MuiHelper" 
    } catch { 
        $def = [Text.StringBuilder]"" 
        [void]$def.AppendLine('[DllImport("user32.dll")]') 
        [void]$def.AppendLine('public static extern int LoadString(IntPtr h,uint id, System.Text.StringBuilder sb,int maxBuffer);') 
        [void]$def.AppendLine('[DllImport("kernel32.dll")]') 
        [void]$def.AppendLine('public static extern IntPtr LoadLibrary(string s);') 
        add-type -MemberDefinition $def.ToString() -name MuiHelper -namespace CosmosKey.Util             
    } 
    if($global:CosmosKey_Utils_MuiHelper_Shell32 -eq $null){         
        $global:CosmosKey_Utils_MuiHelper_Shell32 = [CosmosKey.Util.MuiHelper]::LoadLibrary("shell32.dll") 
    } 
    $maxVerbLength=255 
    $verbBuilder = new-object Text.StringBuilder "",$maxVerbLength 
    [void][CosmosKey.Util.MuiHelper]::LoadString($CosmosKey_Utils_MuiHelper_Shell32,$verbId,$verbBuilder,$maxVerbLength) 
    return $verbBuilder.ToString() 
} 

$apps = ((New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items())
foreach ($app in $apps){
    $appname = $app.Name
    if ($appname -like "*store*"){
        $finalname = $app.Name
    }
}

if($finalname){
    Write-Log "Unpin Store from taskbar"
    $UnpinCommand = Get-TaskVerb 5387
    ((New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | Where-Object{$_.Name -eq $finalname}).Verbs() | Where-Object{$_.Name -match "$UnpinCommand"} | ForEach-Object{$_.DoIt(); $exec = $true}
}

Settings Catalog - So sollen Settings funktionieren 🎉

Diese Methode bietet eine bequeme und benutzerfreundliche Möglichkeit, das Store-Symbol direkt über den Intune Einstellungskatalog zu verwalten.

Und so konfigurierst du dieses Setting:

  1. Gehe zum Intune-Portal und navigiere zu Geräte > Windows.
  2. Wähle Konfigurationsprofile aus und klicke auf Profil erstellen.
  3. Wähle Einstellungskatalog aus.
  4. Gib einen Namen und eine Beschreibung für dein Profil ein.
  5. Füge eine Einstellung hinzu und suche nach "Do not allow pinning Store app to the Taskbar (User)".
  6. Aktiviere die Einstellung und wähle aus, ob sie für alle Benutzer oder bestimmte Benutzergruppen gelten soll.
  7. Klicke auf Weiter, um zu überprüfen, und dann auf Erstellen, um das Profil zu implementieren.
Intune Settings Catalog: Prevent pinning the Microsoft Store to the taskbar"

Ich denke, wir können uns darauf einigen, dass dies der beste und einfachste Weg ist.
Ein weiterer Pluspunkt ist, dass der Benutzer die Verknüpfung nicht mehr zur Taskleiste hinzufügen kann, die Option ist dann nicht mehr verfügbar:

Store not able to pin to Taskbar


Zusammenfassung

Durch strategisches Ausblenden des Microsoft Store-Symbols von deinen Intune-verwalteten Geräten schaffst du eine kontrolliertere Arbeitsumgebung. Dies entmutigt nicht nur unbefugte App-Installationen, sondern fördert auch eine konsistente Benutzererfahrung und gibt wertvollen Platz auf der Taskleiste frei. Die Methode des Intune-Einstellungskatalogs bietet einen benutzerfreundlichen Ansatz, um den Microsoft Store aus der Taskleiste zu entfernen, während alternative Optionen technisch versiertere Benutzer ansprechen. Wähle die Methode, die am besten zu deinen Bedürfnissen und technischen Fähigkeiten passt. Mit dem richtigen Ansatz kannst du das Store-Symbol effektiv verbannen und deinen Benutzern gestraffte, sichere Geräte ermöglichen.