29

A common problem I have is that I have a new PC that I'll be using for a while. And pretty much every Windows 10 PC I've used (even work PCs) have a ton of junk I don't want in the start menu in the form of a tile. I don't care much about the stuff in the "all apps" menu because it's out of the way, but I want the tiles to be just for stuff I use a lot.

Unfortunately, as far as I can tell, the only way to remove tiles is one by one by right clicking > unpin from start. How can I quickly remove all these tiles?

Also, is there some easy way to copy over the start menu links and layout from another computer? This would be useful as I have a number of programs that I always want in the start menu no matter what PC I'm using.

  • 1
    You mentioned you are using Windows 10. Group Policy provides this capability. If you want no tiles, make sure your template has no tiles and deploy. If you want certain tiles here/there, arrange them once, capture, and then deploy. You can use this link to learn more about this method: technet.microsoft.com/en-us/itpro/windows/manage/… - If you don't have gpedit.msc, you can use a 3rd party workaround to get it installed, but that would only be if you are using the Home edition. Otherwise, this should work as is. – InterLinked Apr 26 '16 at 19:56
  • 1
    I had the same question last month when I had 7 computers to configure the same. Wish @lnterLinked had seen it. That would have been a great tool. – CharlieRB Apr 26 '16 at 20:26
  • @InterLinked - you ought to flesh that out and post that as an answer. – Journeyman Geek Jan 18 '17 at 12:50
19

WARNING: The script runs without confirmation and feedback. It worked for me (see PS2), but I don't know 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 start menu.


For non-english Windows, you should 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, for example.

  • 1
    This worked for me, though left odd apps still there (like Translator & Duolingo). I was slightly paranoid so first did Start > Run > "shell:::{4234d49b-0245-4df3-b780-3893943456e1}" to verify this was the All Programs special folder. I then ran (New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | ? { $null -ne ($_.Verbs() | ? { $_.Name -match 'Un.*pin from Start' }) } | select Name to see what was about to be unpinned. Awesome find! – mlhDev Apr 27 '18 at 14:33
  • Thanks, it works, better than cleaning them all by hand – Adrian Moisa May 2 '18 at 13:01
  • 1
    Using Windows 10 Pro 1809 build 17763 in English. I have copy pasted the first script in a script.ps1 file and then executed powershell -ExecutionPolicy ByPass -File script.ps1: the script ran with no errors but it had no effect, the tiles were not removed. The second script provided a thousand lines of items like &Pin to Start or Create &shortcut but none of them contained anything remotely similar to Unpin from Start. – Marco Lackovic Feb 17 at 9:15
  • @MarcoLackovic check the latest edit, maybe it helps – max630 Feb 17 at 10:33
  • @max630 I have just installed a fresh copy of Windows 10 Pro 1809 build 17763 in English. Your third script produces the following output: Open, Open file location, Open new window, Run as administrator, Uninstall, &Pin to Start, Create &shortcut – Marco Lackovic Feb 17 at 14:22
3

An alternative to the method InterLinked suggested is to use PowerShell to remove the apps (this completely removes the app's, not just hides them).

Get-AppXPackage | where-object {$_.name –notlike “*store*”} | Remove-AppxPackage

For more see this tutorial. http://www.tenforums.com/tutorials/4689-apps-uninstall-windows-10-a.html

  • 1
    The question is just about hiding them. And what if you remove "App Connector" render Windows Store useless? – user477799 Jan 18 '17 at 7:08
3

I've come up with a lengthy but comprehensive script for this that should remove all tiles, even those for apps that haven't been installed (Candy Crush, Netflix, etc.). This is intended only to apply to the currently logged in user, and must be run from an administrator powershell window.

#Delete layout file if it already exists
If(Test-Path C:\Windows\StartLayout.xml)
{
    Remove-Item C:\Windows\StartLayout.xml
}

#Creates the blank layout file
echo "<LayoutModificationTemplate xmlns:defaultlayout=""http://schemas.microsoft.com/Start/2014/FullDefaultLayout"" xmlns:start=""http://schemas.microsoft.com/Start/2014/StartLayout"" Version=""1"" xmlns=""http://schemas.microsoft.com/Start/2014/LayoutModification"">" >> C:\Windows\StartLayout.xml
echo "  <LayoutOptions StartTileGroupCellWidth=""6"" />" >> C:\Windows\StartLayout.xml
echo "  <DefaultLayoutOverride>" >> C:\Windows\StartLayout.xml
echo "    <StartLayoutCollection>" >> C:\Windows\StartLayout.xml
echo "      <defaultlayout:StartLayout GroupCellWidth=""6"" />" >> C:\Windows\StartLayout.xml
echo "    </StartLayoutCollection>" >> C:\Windows\StartLayout.xml
echo "  </DefaultLayoutOverride>" >> C:\Windows\StartLayout.xml
echo "</LayoutModificationTemplate>" >> C:\Windows\StartLayout.xml

$regAliases = @("HKLM", "HKCU")

#Assign the start layout and force it to apply with "LockedStartLayout" at both the machine and user level
foreach ($regAlias in $regAliases){
    $basePath = $regAlias + ":\SOFTWARE\Policies\Microsoft\Windows"
    $keyPath = $basePath + "\Explorer" 
    IF(!(Test-Path -Path $keyPath)) { 
        New-Item -Path $basePath -Name "Explorer"
    }
    Set-ItemProperty -Path $keyPath -Name "LockedStartLayout" -Value 1
    Set-ItemProperty -Path $keyPath -Name "StartLayoutFile" -Value "C:\Windows\StartLayout.xml"
}

#Restart Explorer, open the start menu (necessary to load the new layout), and give it a few seconds to process
Stop-Process -name explorer
Start-Sleep -s 5
$wshell = New-Object -ComObject wscript.shell; $wshell.SendKeys('^{ESCAPE}')
Start-Sleep -s 5

#Enable the ability to pin items again by disabling "LockedStartLayout"
foreach ($regAlias in $regAliases){
    $basePath = $regAlias + ":\SOFTWARE\Policies\Microsoft\Windows"
    $keyPath = $basePath + "\Explorer" 
    Set-ItemProperty -Path $keyPath -Name "LockedStartLayout" -Value 0
}

#Restart Explorer and delete the layout file
Stop-Process -name explorer
Remove-Item C:\Windows\StartLayout.xml

In addition, this script can be used in a few other ways:

  1. To apply to all current and future users (they will lose the ability to pin start items)

    a. Remove everything below #Enable the ability to pin items again by disabling "LockedStartLayout"

  2. To apply a customized layout

    a. Customize your start layout exactly how you want it

    b. Export it using this MS guide: https://docs.microsoft.com/en-us/windows/configuration/customize-and-export-start-layout

    c. Replace the blank layout I've provided with your exported XML (making sure to escape characters properly)

That should take care of all cases mentioned in the original question.

2

You can get your Windows 7 start menu back by using "Open Shell". This program will replace the Microsoft "Metro" start menu. It is highly configurable, allowing you to get an XP, or Win7 look. This is the first app I install on Win10 if I'm not using a touchscreen.

It looks like this:

Win7 Classic Shell Example

You can also replace that little shell with any icon you want, if you want to change your start menu button.

Open Shell: https://github.com/Open-Shell/Open-Shell-Menu

NOTE: Classic Shell is now called Open Shell and is fully open sourced.

  • 2
    As of Dec 3rd, 2017 , this "Classic Shell" is no longer actively developed but I have install it today and it will work. The code for the latest version is released on SourceForge. More details here. – Nasri Najib Jan 12 '18 at 8:17
0

You mentioned you are using Windows 10. Group Policy Editor provides this capability. You can use a group policy template to manage settings at scale.

If you want no tiles, make sure your template has no tiles and deploy. If you want certain tiles here/there, arrange them once, capture, and then deploy.

You can use this link to learn more about this method

If you don't have gpedit.msc, you can use a 3rd party workaround to get it installed, but that would only be if you are using the Home edition. Otherwise, this should work as is.

  • Isn't this limited to the Enterprise edition? – grawity Feb 6 '17 at 5:08
  • 1
    Group Policy Editor is limited to Enterprise and Pro but there are workarounds for Home - superuser.com/questions/1018145/… – InterLinked Feb 6 '17 at 10:18
  • Yeah, I have gpedit on Pro, but the specific policies for tile templates are Enterprise-only I've heard. – grawity Feb 6 '17 at 12:20
  • @grawity I'm not familiar with the templates themselves. You would have to look into that – InterLinked Feb 6 '17 at 14:24
0

This script works well

(New-Object -Com Shell.Application).
    NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').
    Items() |
  %{ $_.Verbs() } |
  ?{$_.Name -match 'Un.*pin from Start'} |
  %{$_.DoIt()}

On Win 10 versions 1709 and 1803 it removes all shortcuts except the shortcuts which are the links (not shortcuts) to install the applications from the Store (News, Speed Test, and e.t.c).

This script will remove them when they're installed.

  • How is this answer different from the one given 7 months earlier by @max630? – Marco Lackovic Feb 17 at 8:10
-2

I use the free version Startmenux to get a windows XP like start menu with no tiles and a full list of programs accross the screen rather than hidden in that scrolling menu (yuck).

I believe that there are other similar programs. Here is an article that introduces others, for fairness.

  • 1
    link-only answers are not really helpful. – Ramhound Jan 18 '17 at 15:12
-3

To purge your newly bought computer from all the malware pre-installed on it, you need to start fresh with a clean installation of Windows 10.

  1. Download tool now
  2. Accept
  3. Nothing
  4. Start

If you also wish to uninstall all Windows Store apps from the computer, you can use this command in Administrator PowerShell : Get-AppxPackage -AllUsers | where-object {$_.name –notlike “*store*”} | Remove-AppxPackage. Because the Start Menu comes only with Windows Store apps, this will remove them all. You will, however, need to reinstall every Windows Store apps that you need.

You can also create a PowerShell script that will remove them all. The syntax of the command is Pin-App "Mail" -unpin, just replace Mail by the unwanted tile, and copy-paste the command once per tile to remove. Good luck!

  • External links can break or be unavailable, in which case your answer would not be useful. Please include the essential information within your answer and use the link for attribution and further reading. Thanks. – fixer1234 Dec 6 '16 at 19:52
  • 2
    Did you even read the freakin' question? – user477799 Jan 18 '17 at 7:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.