Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Powershell: Windows 10 Modern Apps an Startmenü anheften oder entfernen (Pin oder Unpin)

Tipp Microsoft Windows 10

Mitglied: colinardo

colinardo (Level 5) - Jetzt verbinden

03.11.2015, aktualisiert 17.02.2016, 16932 Aufrufe, 20 Kommentare, 10 Danke

Microsoft lässt leider eine Funktion vermissen die es einem als Admin ermöglicht einzelne Modern Apps per Skript an das Startmenü anzupinnen oder aus diesem zu entfernen ohne die App gleich deinstallieren zu müssen. Zwar gibt es die Möglichkeit ein vordefiniertes Layout an die User per GPO zu verteilen, doch manchmal ist das zu viel des Guten.

Aus diesem Grund habe ich eine Powershell-Funktion entwickelt die diesen Missstand behebt.

Powershell-Funktion Pin-App

01.
function Pin-App { 
02.
    param( 
03.
        [parameter(mandatory=$true)][ValidateNotNullOrEmpty()][string[]]$appname, 
04.
        [switch]$unpin 
05.
06.
    $actionstring = @{$true='Von "Start" lösen|Unpin from Start';$false='An "Start" anheften|Pin to Start'}[$unpin.IsPresent] 
07.
    $action = @{$true='unpinned from';$false='pinned to'}[$unpin.IsPresent] 
08.
    $apps = (New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | ?{$_.Name -in $appname} 
09.
     
10.
    if($apps){ 
11.
        $notfound = compare $appname $apps.Name -PassThru 
12.
        if ($notfound){write-error "These App(s) were not found: $($notfound -join ",")"} 
13.
 
14.
        foreach ($app in $apps){ 
15.
            $appaction = $app.Verbs() | ?{$_.Name.replace('&','') -match $actionstring} 
16.
            if ($appaction){ 
17.
                $appaction | %{$_.DoIt(); return "App '$($app.Name)' $action Start"} 
18.
            }else{ 
19.
                write-error "App '$($app.Name)' is already pinned to start or action not supported." 
20.
21.
22.
    }else{ 
23.
        write-error "App(s) not found: $($appname -join ",")" 
24.
25.
}

Die Funktion kennt zwei Parameter:
Pin-App [NAME DER APP(s) <string[]>] [-Unpin <switch>]
Im ersten wird der Name der App angegeben (es können auch mehrere Apps als String-Array übergeben werden). Der zweite dient dazu die App(s) aus dem Startmenü zu entfernen.
Anzugeben ist jeweils der lokalisierte Name der App wie er auch im Startmenü erscheint.

App an Startmenü anpinnen

Pin-App "Mail"

App aus Startmenü entfernen

Pin-App "Mail" -unpin

Mehrere Apps auf einmal anpinnen

Pin-App "Rechner","Kamera"
Das gleiche kann auch für das Entfernen mehrerer Apps mit dem Switch -unpin benutzt werden.

Hinweise
Die Funktion ist auf deutsche und englische Sprachversionen von Windows 10 angepasst. Soll diese für andere Sprachen erweitert werden sind die Strings in Zeile 6 zum anpinnen und "de"-pinnen mit einem Pipe-Symbol hinzuzufügen (Achtung: Hier gilt die Regular Expression-Syntax).

Die Apps die mit dieser Methode gepinnt werden können müssen zwingend in diesem System-Ordner gelistet sein:
shell:::{4234d49b-0245-4df3-b780-3893943456e1}
a1c3086a1d77932a2ed9f549ec294fc6 - Klicke auf das Bild, um es zu vergrößern

Viel Spaß damit
Grüße Uwe

Falls der Beitrag gefällt, seid so nett und unterstützt mich durch eine kleine Spende / If you like my contribution please support me and donate

Updates
DatumÄnderung
17.02.2016Grundlegende Überarbeitung der Funktion und Unterstützung für mehrere Apps auf einmal
Mitglied: teslacoil
03.11.2015 um 21:02 Uhr
Die Idee ist gar nicht mal so schlecht ne
Bitte warten ..
Mitglied: DerWoWusste
17.11.2015, aktualisiert um 15:33 Uhr
Hallo Uwe!

Schöne Sache, sagte ich ja schon an anderer Stelle. Einen Haken sehe ich noch: Seit win10 threshold2 kommen neue Kacheln daher, die, sofern man keinen Internetzugang erlaubt, keine sinnvolle Beschriftung erhalten, sondern schlicht "Ausstehend", siehe Bild.
57f5977b4b5e3e53c4644997798a36a1 - Klicke auf das Bild, um es zu vergrößern also quasi Platzhalter für weiteren Krempel, den MS dort abladen möchte.
Ich würde gerne alles abpinnen und dann selektiv Dinge wieder anpinnen. Kann man alles abpinnen?
Oder kann man die "Ausstehend"-Items ebenso programmatisch entfernen?
Bitte warten ..
Mitglied: colinardo
17.11.2015, aktualisiert um 16:08 Uhr
Hallo DWW,
das sind so wie es aussieht nur Links in den MS Store, da werde ich mich mal wieder in die untiefen des Dateibaumes begeben müssen und diese "MS-Krankheiten" zu lokalisieren ...

See you soon with a working solution
Bitte warten ..
Mitglied: DerWoWusste
17.11.2015 um 16:10 Uhr
See you soon with a working solution
see you soon with another MS illness
Bitte warten ..
Mitglied: colinardo
17.11.2015, aktualisiert 18.11.2015
Also folgenden erfolgreichen Zwischenstand kann ich vermelden:

Ich konnte herausfinden das ein Registry-Eintrag für die zusätzlichen Links (welche übrigens die Spiele Candy-Crush/Minecraft, die Newsapp Flipboard etc. sind) im Startmenü verantwortlich sind.

Um zu erreichen das diese Links bei neuen Userprofilen nicht mehr im Startmenü auftauchen geht man folgendermaßen vor:
Man startet Regedit, markiert den Knoten HKEY_LOCAL_MACHINE, und lädt dann über Datei > Struktur laden das Default-Userprofil (C:\Users\Default\ntuser.dat) in einen Schlüssel den man z.B. temp_default_profile nennt, dort ändern man dann folgenden Key:
01.
Windows Registry Editor Version 5.00 
02.
 
03.
[HKEY_LOCAL_MACHINE\temp_default_profile\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager] 
04.
"PreInstalledAppsEnabled"=dword:00000000
Danach markiert man die importierte Struktur temp_default_profile und geht auf Datei > Struktur entfernen

Als Admin-Batch lässt sich das ganze Prozedere so abkürzen:
01.
@echo off 
02.
reg load "HKLM\temp_default_profile" "C:\Users\Default\ntuser.dat" 
03.
reg add "HKLM\temp_default_profile\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v PreinstalledAppsEnabled /d 0 /t "REG_DWORD" /f 
04.
reg unload "HKLM\temp_default_profile"
Man beachte: Der Key wirkt nur wenn das Profil neu erstellt wird, ein nachträgliches Ändern des Keys nachdem das Profil erstellt wurde ändert nichts an den Links !!

Grüße Uwe

p.s. In dem Key wo ich den Wert gefunden habe sind auch ein paar andere Interessante Werte (SystemPaneSuggestionsEnabled) mit denen sich vermutlich die Werbung im Startmenü abschalten lässt.
Bitte warten ..
Mitglied: DerWoWusste
18.11.2015 um 08:36 Uhr
Besten Dank, läuft! Regmounting kann man ja auch skripten, also ist es in jedem Fall ein Weg.
Bitte warten ..
Mitglied: JohnDorian
11.12.2015 um 09:30 Uhr
Gelobet seiest du colinardo!

Danke, das hilft mir ungemein!

Grüße, JD
Bitte warten ..
Mitglied: Highend01
03.02.2016 um 10:23 Uhr
Danke Uwe (das nächste Mal, wenn eine Zahlung auf meinem Paypal-Konto eingeht, leite ich eine Spende weiter...)!

Eine Möglichkeit, bereits existierende Verknüpfungen zu entfernen, die selber keine installierten Apps darstellen (Flipboard, Minecraft und ähnlicher Sch) konntest du (leider) nicht mehr finden? Also für einen bereits existierenden Benutzeraccount...

LG,
Highend
Bitte warten ..
Mitglied: colinardo
03.02.2016, aktualisiert um 15:20 Uhr
Zitat von Highend01:
Danke Uwe (das nächste Mal, wenn eine Zahlung auf meinem Paypal-Konto eingeht, leite ich eine Spende weiter...)!
Danke
Eine Möglichkeit, bereits existierende Verknüpfungen zu entfernen, die selber keine installierten Apps darstellen (Flipboard, Minecraft und ähnlicher Sch) konntest du (leider) nicht mehr finden? Also für einen bereits existierenden Benutzeraccount...
Leider nein, das Startmenü selber wird von MS in binären Files mit proprietärem dynamischen Inhalt verwaltet. Verteile dein Startmenü über eine XML damit kannst du das Startmenü auch noch nachträglich anpassen.

Grüße Uwe
Bitte warten ..
Mitglied: Bommi1961
16.02.2016 um 14:57 Uhr
Hallo Uwe, Dein Tool ist einfach klasse und hat mir sehr geholfen. Läuft auf Notebooks erstklassig. Aber auf Tablet z.B. Surface 3 oder 4, hier wird der Gleich Instal-Jjob genommen wie bei den NB's, löscht er nur die nicht gewünschten Kacheln, erstellt aber nicht die neuen. Wie gesagt bei NB's läuft es Fehler frei. Und es wird immer der gleich Job genommen. Hast Du eine Idee woran das liegen könnte?

VG Thilo
Bitte warten ..
Mitglied: colinardo
16.02.2016, aktualisiert um 16:19 Uhr
Zitat von Bommi1961:

Hallo Uwe, Dein Tool ist einfach klasse und hat mir sehr geholfen. Läuft auf Notebooks erstklassig. Aber auf Tablet z.B. Surface 3 oder 4, hier wird der Gleich Instal-Jjob genommen wie bei den NB's, löscht er nur die nicht gewünschten Kacheln, erstellt aber nicht die neuen. Wie gesagt bei NB's läuft es Fehler frei. Und es wird immer der gleich Job genommen. Hast Du eine Idee woran das liegen könnte?

Hallo Thilo,
von was für "Jobs" sprichst du ? Hellsehen kann ich leider noch nicht
Bau dir halt ein Logging ein oder poste mal "was" bei dir gepinnt wird.
Mangels Surface kann ich hier aber leider keine Tests anstellen. Hab hier nur ein altes first Gen. Surface was ich hier mal als Preis gewonnen habe.

Vielleicht lauten die Strings zum Pinnen der Apps auf dem Surface anderst. Kannst du ja mal nachsehen ob diese im Kontextmenü gleich lauten wie auf dem Desktop.

Grüße Uwe
Bitte warten ..
Mitglied: Bommi1961
17.02.2016 um 07:59 Uhr
Hallo Uwe,

leider bin ich totaler Anfänger was Powershell angeht. Wie kann ich denn ein Login bei Deinem Skrip einschalten?

Hab Dir Gestern eine Spende überwiesen.

VG Thilo
Bitte warten ..
Mitglied: colinardo
17.02.2016, aktualisiert um 13:56 Uhr
Zitat von Bommi1961:

leider bin ich totaler Anfänger was Powershell angeht. Wie kann ich denn ein Login bei Deinem Skrip einschalten?
Du könntest mal die Zeile 11 nur zum Debugging mal so abändern
01.
((New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | ?{$_.Name -eq $appname}).Verbs()

Und dir dabei den Output in der Konsole ansehen, dort sollte ein Eintrag vorhanden sein der dem Text zum Pinnen einer App entspricht. Du kannst die Ausgabe auch gerne hier posten, dann kann ich sie dir bei Bedarf anpassen. Z.b. Wenn es sich um ein Tablet in einer anderen GUI-Sprache als Englisch oder Deutsch handelt.
Hab Dir Gestern eine Spende überwiesen.
TOP! Herzlichen Dank

Grüße Uwe
Bitte warten ..
Mitglied: Bommi1961
17.02.2016 um 10:17 Uhr
Wenn ich die Zeile einfüge kommt diese Meldung:
Es ist nicht möglich, eine Methode für einen Ausdruck aufzurufen, der den NULL hat.
In C:\ProgrammDaten\WIN10AP\PIN-APP1.PS1:11 Zeichen:2

((New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-02 ...

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ CategoryInfo : InvalidOperation: ( [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

Wenn ich die Zeile nicht drin haben, läuft es ohne Fehler durch:
App 'Store' unpinned from Start
App 'Einstellungen' unpinned from Start
>>>>Die beiden Befehle werden gemacht!!

App 'PCInfo' pinned to Start
App 'IT-Shop' pinned to Start
App 'Internet Explorer' pinned to Start
App 'Word 2016' pinned to Start
App 'Excel 2016' pinned to Start
App 'OneNote 2016' pinned to Start
App 'Computer Sperren' pinned to Start
App 'Logoff' pinned to Start
App 'Computer Ausschalten' pinned to Start
>>>>>>Das alles wird ignoriert bei den Tablets

VG Thilo
Bitte warten ..
Mitglied: colinardo
17.02.2016, aktualisiert um 10:23 Uhr
Sorry Typo....bin am Tablet, ist korrigiert.

Ich hatte gemeint das du das mal manuell für eine einzelne App machst die du pinnen willst. Damit werden dann die möglichen Aktionen gelistet die mit dieser App möglich sind, wenn in diesen Aktionen der String zum Pinnen nicht enthalten ist, kann das Skript die App auch nicht anpinnen.

Ansonsten bitte weitere Kommentare via PM. Danke!
Bitte warten ..
Mitglied: Bommi1961
17.02.2016 um 11:19 Uhr
muss wieder fragen...
was hast Du geändert und wo?
und was meinst Du mit PM?
Bitte warten ..
Mitglied: colinardo
17.02.2016 um 11:40 Uhr
Zitat von Bommi1961:

muss wieder fragen...
was hast Du geändert und wo?
Den Code im letzten Post.
und was meinst Du mit PM?
PM
Damit der Thread hier nicht unnötig voll läuft und die anderen nicht "gestört" werden.
Bitte warten ..
Mitglied: loonydeluxe
05.11.2017 um 15:11 Uhr
Der Thread ist zwar schon etwas älter, scheint aber der passendste zu sein

Hat einer von euch eine Möglichkeit gefunden, die Apps auf der Taskbar zu enumerieren, zu pinnen/entpinnen?

Scheint nur Anleitungen für das Startmenü zu geben, um einzelne Apps zu bearbeiten und für die Taskbar die "Lösung", per Registry alle gepinnten Apps wegzuwerfen.

Die hier kenne ich schon, hilft aber nix:
https://pinto10blog.wordpress.com/
http://alexweinberger.com/main/pinning-network-program-taskbar-programm ...
https://www.tenforums.com/customization/21002-how-automatically-cmd-powe ...

Das hier könnte funktionieren, nützt aber nix für Einzelplatzinstallationen:
https://www.itnator.net/taskleiste-windows-10-anpassen-per-gpo/

(und ich hätte gerne am Ende die alles erschlagende Lösung per Skript, nicht wieder für jede Umgebung einen eigenen Workaround)
Bitte warten ..
Mitglied: 134464
05.11.2017, aktualisiert um 16:07 Uhr
Wieso hilft https://pinto10blog.wordpress.com nicht?? Geht doch einwandfrei auch für die Taskbar, und Source Code ist sogar mit dabei. Kannst du dir also nach Belieben in deine präferierte Skriptspache übersetzen.
Das hier könnte funktionieren, nützt aber nix für Einzelplatzinstallationen:
https://www.itnator.net/taskleiste-windows-10-anpassen-per-gpo/
Doch, einfach die XML statt per GPO mit Import-Startlayout importieren, GPO ist dann nicht nötig!!
und ich hätte gerne am Ende die alles erschlagende Lösung per Skript, nicht wieder für jede Umgebung einen eigenen Workaround
Wohin sollen wir die Rechnung schicken?
Bitte warten ..
Mitglied: loonydeluxe
05.11.2017 um 18:59 Uhr
Zitat von 134464:

Wieso hilft https://pinto10blog.wordpress.com nicht?? Geht doch einwandfrei auch für die Taskbar, und Source Code ist sogar mit dabei. Kannst du dir also nach Belieben in deine präferierte Skriptspache übersetzen.
Kennst du einen allgemeingültigen Pfad zur .exe der integrierten Mail-App, so dass ich diesen als absoluten Pfad übergeben kann? --> Mein Ziel wäre ja, die Objekte der Taskbar enumerieren zu können und diese dann entsprechend zu löschen, statt die absoluten Pfade der "eventuell" gepinnten Programme zu kennen. Für das Startmenü gibts da schon was, jedoch nicht für die Taskbar.

Das hier könnte funktionieren, nützt aber nix für Einzelplatzinstallationen:
https://www.itnator.net/taskleiste-windows-10-anpassen-per-gpo/
Doch, einfach die XML statt per GPO mit Import-Startlayout importieren, GPO ist dann nicht nötig!!
Wie gut funktioniert das denn für (verschiedene) neu erzeugte Benutzerprofile einer Einzelplatzinstallation ohne dass ich jedes Mal wieder ran muss? Wie stehts um die "Home Edition"?

und ich hätte gerne am Ende die alles erschlagende Lösung per Skript, nicht wieder für jede Umgebung einen eigenen Workaround
Wohin sollen wir die Rechnung schicken?
Ich helfe ja auch immer gern.
Bitte warten ..
Ähnliche Inhalte
Windows 10
Windows 10: Apps mit Applocker sperren
Anleitung von 122990Windows 1010 Kommentare

Diese Anleitung beschreibt kurz und bündig die nötigen Schritte um Apps unter Windows 10 mit Applocker zu sperren. Schritt ...

Windows 10
Windows 10: Alle Einträge aus dem Schnellzugriff (Quick access) im Explorer mit Powershell entfernen
Tipp von colinardoWindows 103 Kommentare

Wer es gebrauchen kann, ein Powershell-Einzeiler zum Entfernen aller Einträge aus dem Schnellzugriff (quick access) im Windows-Explorer. Und schon ...

Visual Studio
Windows 10: Das Entwicklerkit für Universal-Apps ist verfügbar (Preview)
Information von FrankVisual Studio

Endlich ist die Vorschau des Entwicklerkits für die Windows 10 Universal-Apps verfügbar (Microsoft nennt es: Tools for Windows 10 ...

Windows 10
Windows 10 - OneNote APP entfernen
Tipp von 114757Windows 1012 Kommentare

Ihr habt bereits MS Office mit dem großen Bruder OneNote nachinstalliert und braucht jetzt die vorinstallierte OneNote Modern APP ...

Neue Wissensbeiträge
Windows 10

Windows 10 Hello-Anmeldung per Foto ausgehebelt

Tipp von kgborn vor 3 StundenWindows 10

Windows Hello ist eine Funktion, um sich per Fingerabdruck-, Gesichts- oder Iriserkennung bei Windows 10-Geräten anzumelden (siehe), setzt aber ...

Perl

Perl hat heute Geburtstag: 30 Jahre Perl: Lange Gesichter zum Geburtstag

Information von Penny.Cilin vor 11 StundenPerl2 Kommentare

Hallo, auch wenn es wenige wissen und noch weniger Leute es nutzen. Perl hat heute Geburtstag. 30 Jahre Perl ...

Sicherheit

Blackberry stirbt - Keine Updates für Priv mehr

Tipp von certifiedit.net vor 11 StundenSicherheit1 Kommentar

Blackberry wird zu einer 08/15 Firma und geht wohl mehr und mehr den Weg, den HTC schon ging. Von ...

Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 2 TagenWindows 1012 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Heiß diskutierte Inhalte
Windows Server
SCCM 2016: PXE Boot des Clients schlägt fehl
Frage von gabeBUWindows Server23 Kommentare

Hallo Zusammen Ich habe eine Testumgebung erstellt um über SCCM 2016 einen virtuellen Client aufzusetzen. Folgende Maschinen habe ich ...

Netzwerkgrundlagen
Belibiges Teilnetz einer Subnetzmaske rausfinden?
gelöst Frage von CenuzeNetzwerkgrundlagen19 Kommentare

Wundervollen Gutentag, mittlerweile kann ich Subnetting so einigermaßen, aber ein Problem habe ich noch. Netzwerkadresse und Boradcast errechnen ist ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless12 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Exchange Server
Exchange empfängt Emails - Kann aber keine Senden
gelöst Frage von niklasschaeferExchange Server11 Kommentare

Hallo, ich stehe gerade bei mir zuhause vor folgender Problemstellung. Gegeben sind 2x Hyper-V Host mit Windows Server 2016 ...