使用 Powershell 从 Windows 10 任务栏取消固定新 Edge

Chr*_*ath 5 windows powershell taskbar microsoft-edge

这是我一直在使用的代码...(并且效果很好!)

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"
Run Code Online (Sandbox Code Playgroud)

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

有人对为什么会这样有任何见解吗?

小智 5

MS 凭借其锋利的力量变得越来越狡猾。它现在保存在注册表中(对于 20H2 的新用户):

"HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband"
Run Code Online (Sandbox Code Playgroud)

在“收藏夹”下。

该键是保存用户对任务栏所做修改的位置。由于我们希望为新用户从那里删除 Edge,只需删除该键及其内部的所有值,这将删除所有任务栏自定义。如果您有自定义 LayoutModification.xml,它仍然会应用您的自定义设置,而无需在任务栏中强制固定 Edge 快捷方式。

Remove-Item "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband" -Recurse -Force
Run Code Online (Sandbox Code Playgroud)

然后只需停止并重新启动 Explorer 进程,当前用户的快捷方式就会被删除。

Stop-Process -Processname Explorer -WarningAction SilentlyContinue -ErrorAction SilentlyContinue -Force
Run Code Online (Sandbox Code Playgroud)

如果您希望所有新用户都发生这种情况,您可以将 RunOnce 项添加到默认注册表配置单元以运行上述两个命令。