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

如何通过脚本、GPO或VMware DEM移除Windows 11开始菜单推荐区的“Get Started”项?

如何通过脚本、GPO或VMware DEM移除Windows 11开始菜单推荐区的“Get Started”项?

我完全懂你现在的挫败感——Windows 11开始菜单的推荐区尤其是“Get Started”项确实顽固得很,而且你已经试过注册表对比、Windows配置设计师这些常规方法都没效果,换谁都会头疼。结合你用AD、GPO和VMware DEM管理非持久化浮动桌面的环境,我给你几个可行的方向,都是避开直接卸载(避免搞坏系统)的思路:

方法一:预配置开始菜单布局,通过GPO/DEM批量部署

这个方法是先手动打造一个干净的开始菜单(去掉“Get Started”,调整好你想要的推荐内容),然后把布局导出给所有用户使用,适合非持久化桌面这种每次登录需要重置环境的场景:

  • 在测试机上用管理员账号登录,手动移除推荐区的“Get Started”,调整好其他你需要的推荐项。
  • 打开PowerShell(管理员权限),导出当前开始菜单布局:
    Export-StartLayout -Path "C:\Temp\CustomStartLayout.xml"
    
  • 把这个CustomStartLayout.xml文件放到域共享或者DEM的存储库中。
  • 通过GPO的**用户配置>策略>Windows设置>脚本(登录/注销)**添加一个PowerShell登录脚本,内容是导入布局:
    Import-StartLayout -LayoutPath "\\DomainShare\Scripts\CustomStartLayout.xml" -MountPath "$env:SystemDrive\"
    
    或者在VMware DEM中,把这个导入脚本加到User Tasks里,设置为用户登录时执行。

    注意:这个方法会覆盖整个开始菜单布局,包括推荐区,所以一定要预先配置好所有你需要保留的内容。

方法二:用PowerShell脚本模拟手动移除操作

既然直接改注册表没用,我们可以用UI自动化的思路,模拟用户右键点击“Get Started”然后选择“从推荐中移除”的操作,适合需要保留用户自定义布局,只针对性去掉“Get Started”的场景:
下面是完整的PowerShell脚本,你可以把它做成GPO登录脚本或者DEM的用户登录任务:

Add-Type @"
using System;
using System.Windows.Automation;
public class StartMenuHelper {
    public static void RemoveGetStarted() {
        // 定位开始菜单窗口
        AutomationElement startMenu = AutomationElement.RootElement.FindFirst(
            TreeScope.Children,
            new PropertyCondition(AutomationElement.ClassNameProperty, "Windows.UI.Core.CoreWindow")
        );
        if (startMenu == null) return;

        // 找到推荐区的Get Started项
        AutomationElement getStarted = startMenu.FindFirst(
            TreeScope.Descendants,
            new AndCondition(
                new PropertyCondition(AutomationElement.NameProperty, "Get Started"),
                new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.ListItem)
            )
        );
        if (getStarted == null) return;

        // 触发右键菜单
        ContextMenuPattern contextMenu = getStarted.GetCurrentPattern(ContextMenuPattern.Pattern) as ContextMenuPattern;
        contextMenu?.ShowContextMenu();

        // 点击“从推荐中移除”选项
        AutomationElement removeOption = AutomationElement.RootElement.FindFirst(
            TreeScope.Descendants,
            new PropertyCondition(AutomationElement.NameProperty, "Remove from Recommended")
        );
        if (removeOption != null) {
            InvokePattern invoke = removeOption.GetCurrentPattern(InvokePattern.Pattern) as InvokePattern;
            invoke?.Invoke();
        }
    }
}
"@

[StartMenuHelper]::RemoveGetStarted()

注意:这个脚本需要在用户上下文执行(不能是系统上下文),所以在GPO或DEM里配置时要确保脚本运行身份是登录用户。另外,因为是UI自动化,需要用户登录后桌面加载完成再执行,可以给脚本加个5-10秒的延迟(比如Start-Sleep -Seconds 5)避免找不到元素。

方法三:利用VMware DEM捕获用户配置

对于非持久化桌面,VMware DEM的优势就是可以保存和还原用户的个性化配置,你可以这么操作:

  • 在测试机上用一个测试用户登录,手动移除推荐区的“Get Started”项,调整好其他开始菜单设置。
  • 打开VMware DEM的Profile Management,捕获这个用户的开始菜单相关配置——具体是%LOCALAPPDATA%\Packages\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy这个目录,因为Windows 11的开始菜单推荐数据存在这里的数据库文件里(这也是你之前对比注册表看不到变化的原因)。
  • 把捕获到的配置包部署给所有用户,这样每次用户登录非持久化桌面时,DEM会自动还原这个干净的开始菜单配置。

重要提醒

千万别尝试卸载Microsoft.GetStarted这个Appx包!正如你看到的博客所说,它和系统的引导教程、部分设置功能深度绑定,强行卸载会导致系统异常。上面的方法都是通过隐藏、移除或还原配置的方式来解决问题,不会破坏系统。

你可以先在测试机上试试这些方法,结合你的非持久化环境,脚本+DEM的组合应该是最灵活稳妥的。

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

火山引擎 最新活动