You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows 11 中如何管控程序安装与更新时的桌面快捷方式创建行为

Windows 11 中如何管控程序安装与更新时的桌面快捷方式创建行为

哥们,我太懂你这种需求了——新安装的程序要个桌面快捷方式方便找,可老程序更新时动不动就往桌面塞重复的快捷方式,真的是越堆越乱!下面给你几个针对性的方案,按需挑:

一、精准区分:允许新安装程序创建桌面快捷方式,阻止更新产生的快捷方式

Windows本身没有原生的「区分安装/更新」快捷方式管控机制,咱们得靠点小工具或脚本实现,这里给你个最实用的方案:

PowerShell脚本+任务计划监控方案

思路是:监控桌面新出现的快捷方式,判断它指向的程序是否是「旧程序」(比如创建时间超过7天,就判定是更新产生的),如果是就自动移到收纳文件夹里。

给你写个现成的脚本,直接用就行:

# 配置参数:桌面路径和收纳文件夹
$desktopPath = [Environment]::GetFolderPath("Desktop")
$targetFolder = Join-Path $desktopPath "更新快捷方式收纳盒"

# 如果收纳文件夹不存在就创建
if (-not (Test-Path $targetFolder)) {
    New-Item -ItemType Directory -Path $targetFolder | Out-Null
}

# 获取桌面根目录的所有快捷方式(排除子文件夹里的)
$shortcuts = Get-ChildItem -Path $desktopPath -Filter "*.lnk" | Where-Object { $_.DirectoryName -eq $desktopPath }

foreach ($shortcut in $shortcuts) {
    # 获取快捷方式指向的目标程序路径
    $shell = New-Object -ComObject WScript.Shell
    $targetProgram = $shell.CreateShortcut($shortcut.FullName).TargetPath
    
    # 确保目标程序存在
    if ($targetProgram -and (Test-Path $targetProgram)) {
        $programCreatedDate = (Get-Item $targetProgram).CreationTime
        # 设定阈值:程序创建超过7天,就判定是更新产生的快捷方式
        if ((Get-Date) - $programCreatedDate -gt (New-TimeSpan -Days 7)) {
            # 移动到收纳盒(也可以改成Remove-Item直接删除)
            Move-Item -Path $shortcut.FullName -Destination $targetFolder -Force
        }
    }
}

使用步骤:

  1. 把这段代码复制到记事本,保存为CleanUpdateShortcuts.ps1(注意保存类型选「所有文件」)
  2. 打开「任务计划程序」,创建新任务:
    • 触发器选「每隔10分钟」(实时监控)或「当用户登录时」
    • 操作选「启动程序」,程序/脚本填powershell.exe,添加参数填-ExecutionPolicy Bypass -File "你的脚本保存路径\CleanUpdateShortcuts.ps1"
  3. 保存任务,以后它就会自动帮你清理更新产生的多余快捷方式了

二、简单粗暴:完全禁用所有程序创建桌面快捷方式

如果你觉得偶尔手动找程序也能接受,或者想彻底杜绝桌面乱序,可以直接禁用所有程序的桌面快捷方式创建权限:

方法1:组策略(专业版/企业版可用)

  1. 按下Win+R,输入gpedit.msc回车打开组策略编辑器
  2. 导航到:用户配置 > 管理模板 > Windows组件 > 文件资源管理器
  3. 找到并双击「阻止将快捷方式添加到桌面」,选择「已启用」,点击确定即可

方法2:注册表(家庭版可用)

  1. 按下Win+R,输入regedit回车打开注册表编辑器
  2. 定位到路径:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
  3. 右键空白处,新建「DWORD(32位)值」,命名为NoDesktopShortcuts
  4. 双击这个值,把数值数据改成1,点击确定,重启电脑生效

三、折中方案:重定向所有快捷方式到桌面指定文件夹

不想禁用也不想清理,想把所有快捷方式统一收纳到桌面的一个文件夹里?可以这么做:

  1. 在桌面创建一个文件夹,比如叫「所有程序快捷方式」
  2. 修改上面的PowerShell脚本,去掉「程序创建时间判断」的逻辑,直接把所有桌面根目录的.lnk文件移动到这个文件夹里
  3. 可以把这个文件夹固定到任务栏,找程序一样方便

备注:内容来源于stack exchange,提问作者empleat

火山引擎 最新活动