我经常遇到的一个问题是,我有一台新电脑,我会使用一段时间。而且,几乎我用过的每台 Windows 10 电脑(甚至是工作电脑)的开始菜单中都有很多我不想要的垃圾,这些垃圾以磁贴的形式存在。我不太在意“所有应用”菜单中的内容,因为它们不碍事,但我希望磁贴只显示我经常使用的内容。
不幸的是,据我所知,移除图块的唯一方法是通过右键单击 > 从开始取消固定逐个移除图块。我如何才能快速移除所有这些图块?
另外,有没有简单的方法可以从另一台计算机复制开始菜单链接和布局?这将很有用,因为无论我使用哪台 PC,我都希望在开始菜单中显示一些程序。
答案1
警告:脚本运行时无需确认和反馈。它对我来说是有效的(参见 PS2),但我不知道它是否对每个人都有效。
(New-Object -Com Shell.Application).
NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').
Items() |
%{ $_.Verbs() } |
?{$_.Name -match 'Un.*pin from Start'} |
%{$_.DoIt()}
它从开始菜单中取消固定所有程序。
对于非英语的 Windows,您可能应该用另一个句子替换“Un.*pin from Start”。
跑步
(New-Object -Com Shell.Application).
NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').
Items() |
%{ $_.Verbs() }
检查一下什么是你的。法语:'&Désépingler de la page d''accueil'
PS:上面的命令可能会打印很长的列表,手动查看起来比较困难。您可以通过以下命令在开始屏幕中查看某些已知应用程序的操作(替换名称以匹配,对我来说是 KeePass):
(New-Object -Com Shell.Application).
NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').
Items() | ?{$_.Name() -match 'Keep.*'} |
%{ $_.Verbs() }
PS2:@MarcoLackovic 报告说它不会删除所有内容。最近我有机会尝试了一下,它确实没有删除所有内容。剩下的是对 Windows Store 的引用。看起来该脚本只扫描已安装的应用程序,因此它不会删除其他图标。例如,我怀疑它还会跳过固定的文档。
答案2
我为此想出了一个冗长但全面的脚本,它可以删除所有图块,甚至删除尚未安装的应用程序(Candy Crush、Netflix 等)的图块。复制下面的内容并从PowerShell ISE以管理员身份执行的窗口。
它将删除当前登录用户的所有标题,另外还可以选择对所有用户执行相同操作新用户在计算机中——见下文。
#Requires -RunAsAdministrator
$START_MENU_LAYOUT = @"
<LayoutModificationTemplate xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout" xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout" Version="1" xmlns:taskbar="http://schemas.microsoft.com/Start/2014/TaskbarLayout" xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification">
<LayoutOptions StartTileGroupCellWidth="6" />
<DefaultLayoutOverride>
<StartLayoutCollection>
<defaultlayout:StartLayout GroupCellWidth="6" />
</StartLayoutCollection>
</DefaultLayoutOverride>
</LayoutModificationTemplate>
"@
$layoutFile="C:\Windows\StartMenuLayout.xml"
#Delete layout file if it already exists
If(Test-Path $layoutFile)
{
Remove-Item $layoutFile
}
#Creates the blank layout file
$START_MENU_LAYOUT | Out-File $layoutFile -Encoding ASCII
$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 $layoutFile
}
#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
# Uncomment the next line to make clean start menu default for all new users
#Import-StartLayout -LayoutPath $layoutFile -MountPath $env:SystemDrive\
Remove-Item $layoutFile
此外,此脚本还有几种其他用途:
适用于新用户:
a. 取消注释脚本中的该行
应用自定义布局
a. 按照您的需要自定义开始布局
b. 使用此 MS 指南将其导出:https://docs.microsoft.com/en-us/windows/configuration/customize-and-export-start-layout
c. 用您导出的 XML 替换 $START_MENU_LAYOUT(确保正确转义字符)
这应该可以解决原始问题中提到的所有情况。
答案3
InterLinked 建议的方法的替代方法是使用 PowerShell 来删除应用程序(这会彻底删除应用程序,而不仅仅是隐藏它们)。
Get-AppXPackage | where-object {$_.name –notlike “*store*”} | Remove-AppxPackage
更多信息请参阅本教程。http://www.tenforums.com/tutorials/4689-apps-uninstall-windows-10-a.html
答案4
您提到您正在使用 Windows 10。组策略编辑器提供了此功能。您可以使用组策略模板来大规模管理设置。
如果您不想要图块,请确保您的模板没有图块并部署。如果您想要某些图块,请先排列它们,然后捕获,再部署。
您可以使用此链接了解有关此方法的更多信息
如果您没有 gpedit.msc,您可以使用第三方解决方法来安装它,但这仅适用于您使用家庭版的情况。否则,它应该可以正常工作。