由于我上次不得不过多地设置Windows PC(并且可能下次也要如此),因此我正在尽最大努力实现此过程的自动化(尽管这样做仍然不值得) )。
目前,我尝试删除开始布局中的所有项目。我见过this post,但它指出那里仅取消固定已安装的应用程序(执行Windows Store之类的脚本后,某些内容仍然存在)。
因此,我认为只说Windows“嘿,如何使用这种空布局”来删除所有内容会更容易。我遵循了这两个教程1和2。
我通过PowerShell导出了当前(空)启动布局:
Export-StartLayout -UseDesktopApplicationID -Path "C:\CustomStartLayout.xml"
看起来像这样:
<LayoutModificationTemplate xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout" xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout" Version="1" xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification">
<LayoutOptions StartTileGroupCellWidth="6" />
<DefaultLayoutOverride>
<StartLayoutCollection>
<defaultlayout:StartLayout GroupCellWidth="6" />
</StartLayoutCollection>
</DefaultLayoutOverride>
</LayoutModificationTemplate>
然后,我在两个教程中都创建了注册表项:
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer"
New-ItemProperty -Force -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer -Name LockedStartLayout -PropertyType DWord -Value 0
New-ItemProperty -Force -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer -Name StartLayoutFile -PropertyType ExpandString -Value "C:\CustomStartLayout.xml"
它指出更改应在重新启动Windows后生效,但不会生效。我已经检查了注册表项是否在注册表中,并且在正确的路径上具有正确的值,并且xml文件在正确的路径中。
我想念什么吗?还是有另一种方法?重要的是,我只需要最后执行脚本,并且不必手动干预任何内容。手动步骤仅应为初始步骤(例如编写此脚本或创建一个标准的布局文件,稍后再将其加载)。
最佳答案
所以我做了一些研究。显然,将开始布局应用于当前登录的用户在某种程度上很特殊(因为这不是经常需要的,仅适用于一个用户)。
我问题中的上述解决方案仅适用于尚未登录此计算机上系统的用户-甚至一次也没有(,我没有使用新创建的用户对其进行过的测试。我只知道我的PC在运行后不会爆炸这些命令)。
现在从this post和this post知道开始布局的默认配置位于:
C:\Users\%username%\AppData\Local\Microsoft\Windows\Shell\DefaultLayout.xml
并且,这一点不应更改。对于修改,请使用以下文件(如果尚不存在,则只需创建即可):
C:\Users\%username%\AppData\Local\Microsoft\Windows\Shell\LayoutModification.xml
但是此文件仅在删除特定的注册表项后才生效。在PowerShell中执行以下操作:
Remove-Item -Force -Recurse -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\CloudStore\Store"
当然,此后必须重新启动PC。
关于windows - 如何通过PowerShell为Windows 10上的当前用户设置Windows开始菜单布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60594329/