You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让PowerShell脚本同时移除Windows 11开始菜单推荐区指定条目

实现从文件管理器和开始菜单推荐区移除指定最近文件条目

你的现有脚本已经能处理文件管理器快速访问中的最近文件条目,要同时移除开始菜单推荐区的对应内容,需要补充处理系统最近项目和应用跳转列表两部分,以下是完整修改后的脚本:

# 移除文件管理器快速访问中的指定最近文件条目
$Namespace = "shell:::{679f85cb-0220-4080-b29b-5540cc05aab6}"
$QuickAccess = New-Object -ComObject shell.application
$RecentFiles = $QuickAccess.Namespace($Namespace).Items()
$FilteredFiles = $RecentFiles | Where-Object {$_.Path -like "*C:\CertainDir*"}
$FilteredFiles | ForEach-Object {$_.InvokeVerb("remove")}

# 移除"最近项目"文件夹中的对应条目(同步到开始菜单推荐)
$RecentItemsNamespace = "shell:::{22877a6d-37a1-461a-91b0-dbda5aaebc99}"
$RecentItems = $QuickAccess.Namespace($RecentItemsNamespace).Items()
$FilteredRecentItems = $RecentItems | Where-Object {$_.Path -like "*C:\CertainDir*"}
$FilteredRecentItems | ForEach-Object {$_.InvokeVerb("delete")}

# 移除应用跳转列表中的指定路径条目(处理开始菜单推荐中来自应用的最近文件)
$jumpListPaths = @(
    "$env:APPDATA\Microsoft\Windows\Recent\AutomaticDestinations",
    "$env:APPDATA\Microsoft\Windows\Recent\CustomDestinations"
)

foreach ($path in $jumpListPaths) {
    if (Test-Path $path) {
        $jumpListFiles = Get-ChildItem -Path $path -File
        foreach ($file in $jumpListFiles) {
            try {
                $jumpList = New-Object -ComObject Microsoft.Windows.Shell.JumpList
                $jumpList.LoadKnownCategory([Microsoft.Windows.Shell.JumpListCategoryType]::Recent)
                $itemsToRemove = $jumpList.Items | Where-Object {$_.Path -like "*C:\CertainDir*"}
                foreach ($item in $itemsToRemove) {
                    $jumpList.Items.Remove($item)
                }
                $jumpList.Save()
            } catch {
                # 部分跳转列表文件可能被占用,直接跳过
                continue
            }
        }
    }
}

# 清理COM对象释放内存
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($QuickAccess) | Out-Null
[System.GC]::Collect()
[System.GC]::WaitForPendingFinalizers()

关键说明

  1. 原有代码保留:负责移除文件管理器快速访问面板里的指定路径条目。
  2. 最近项目处理:shell:::{22877a6d-37a1-461a-91b0-dbda5aaebc99}是系统“最近项目”的Shell命名空间,这里的条目会直接同步到开始菜单推荐区,调用delete动词仅从列表移除,不会删除实际文件。
  3. 应用跳转列表处理:Windows会把各应用打开过的最近文件存在AutomaticDestinations和CustomDestinations目录的跳转列表文件中,开始菜单推荐会聚合这些内容。通过Microsoft.Windows.Shell.JumpList对象加载并移除匹配条目。
  4. 注意事项:
    • 替换*C:\CertainDir*为你实际要过滤的路径,支持通配符匹配。
    • 脚本无需管理员权限,仅操作当前用户的个人数据。
    • 部分跳转列表文件可能因被应用占用无法加载,脚本会自动跳过,不影响整体效果。

内容的提问来源于stack exchange,提问作者Mytzenka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 22:25:21