使用PowerShell将新版本Edge从Windows 10任务栏中取消固定

5

这是我一直在使用的代码...(而且它一直很好用!)

function DoUnpin([string]$appname) {
   $ErrorActionPreference = 'silentlycontinue'
    ((New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() `
     | Where-Object { $_.Name -eq $appname }).Verbs() `
     | Where-Object { $_.Name.replace('&', '') -match 'Unpin from taskbar' } `
     | ForEach-Object { $_.DoIt(); }
   $ErrorActionPreference = 'continue'
}
DoUnpin "Microsoft Store"
DoUnpin "Mail"
DoUnpin "Store"
DoUnpin "Edge"
DoUnpin "Microsoft Edge"

但在过去几周,微软推出了基于Chromium的新Edge浏览器(带有漩涡图标),我无法弄清如何在不使用鼠标/GUI的情况下取消固定它。

有人知道为什么会这样吗?

2个回答

4

微软越来越巧妙地使用了edge-forcefulness技术。现在(针对20H2上的新用户),它保存在注册表中:

"HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband"

在“收藏夹”下。

该键保存用户对任务栏进行的修改。由于我们想要为新用户从中删除Edge,只需删除该键及其内部的所有值,这将删除所有任务栏自定义设置。如果您有自定义的LayoutModification.xml文件,则它仍将应用您的自定义设置,而无需在任务栏中强制固定Edge快捷方式。

Remove-Item "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband" -Recurse -Force

然后停止并重新启动资源管理器进程,此时快捷方式将会被删除。

Stop-Process -Processname Explorer -WarningAction SilentlyContinue -ErrorAction SilentlyContinue -Force

如果你希望所有新用户都执行此操作,可以将 RunOnce 键添加到默认的注册表中运行上述两个命令。

1
我正在使用Windows 10(1909),删除任务栏注册表键后,新的Edge任务栏固定、资源管理器任务栏固定和商店任务栏固定都被移除了,但是没有移除邮件任务栏固定... 我仍然可以使用我的问题帖子中的方法来移除它。谢谢。 - Chris Heath
更新:我发布的原始代码现在可以正常工作,而无需删除整个任务栏(但仍然是一个好答案)。 - Chris Heath

1
你可以尝试查看LayoutModification.xml文件。如果其中有一个Edge条目,它将会一直被固定在任务栏上。
该文件位于%userprofile%\AppData\Local\Microsoft\Windows\Shell。
如果该文件存在,请打开它并查找“CustomTaskbarLayoutCollection”部分。然后检查是否有与Edge相关的条目,并删除这些行。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接