AVERTISSEMENT : The script runs without confirmation and feedback. It a fonctionné pour moi (see PS2), but Je ne sais pas if it would work for everybody.
From this and this, I made the following script, which did the thing for me:
(New-Object -Com Shell.Application).
NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').
Items() |
%{ $_.Verbs() } |
?{$_.Name -match 'Un.*pin from Start'} |
%{$_.DoIt()}
It unpins all programs from menu Démarrer.
For non-english Windows, vous devriez probably replace 'Un.*pin from Start' by another sentence.
Run
(New-Object -Com Shell.Application).
NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').
Items() |
%{ $_.Verbs() }
To check what's yours. In French : '&Désépingler de la page d''accueil'
PS: previous command may print long list which is hard to look through manually. You could see actions for some known application in the start screen by the command (substitute the name to match, for me it was KeePass):
(New-Object -Com Shell.Application).
NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').
Items() | ?{$_.Name() -match 'Keep.*'} |
%{ $_.Verbs() }
PS2: @MarcoLackovic reported that it does not remove all. Recently I had a chance to try it and it indeed did not remove all. What was left were references to Windows Store. Looks like the script only scans through installed applications, so it does not remove other icons. I would suspect it also skips pinned documents, par exemple.