我每天都设置计算机,我需要删除Microsoft Edge和Store任务栏快捷方式。
我在创建脚本时遇到问题,我搜索了其他stackoverflow帖子,但它们对我没用。
是否有人可以使用可以取消固定MS Edge和Store任务栏快捷方式的脚本?
答案 0 :(得分:7)
是的,您可以通过运行以下ps命令取消固定Microsoft Edge并从任务栏存储应用程序。
$appname = "Microsoft Edge"
((New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | ?{$_.Name -eq $appname}).Verbs() | ?{$_.Name.replace('&','') -match 'Unpin from taskbar'} | %{$_.DoIt(); $exec = $true}
$appname = "Store"
((New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | ?{$_.Name -eq $appname}).Verbs() | ?{$_.Name.replace('&','') -match 'Unpin from taskbar'} | %{$_.DoIt(); $exec = $true}
更改$appname
变量应该适用于任务栏上的任何应用程序,如果它不存在,则会抛出InvokeMethodOnNull
错误。
这是做什么的: 它枚举Shell /任务栏COM对象命名空间
匹配名称为$appname
的项目(在本例中为边缘和存储)
获取该com对象的神奇Unpin from taskbar
动词
执行动词并将其从任务栏中删除,而不必杀死explorer.exe。
答案 1 :(得分:2)
来自Judge2020的非常好的解决方案,+ 1
Von "Start" lösen
$appnames = "^Microsoft Edge$|^Store$"
((New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() |
Where-Object{$_.Name -match $appnames}).Verbs() |
Where-Object{$_.Name.replace('&','') -match 'Unpin from taskbar|Von "Start" lösen'} |
ForEach-Object{$_.DoIt(); $exec = $true}