让用户在 win10 中更改部署的任务栏引脚

让用户在 win10 中更改部署的任务栏引脚

我正在部署 Windows 10,想使用 LayoutModification.xml 来配置任务栏。部署运行正常,并进行了我的更改,但用户无法在不需要时删除这些固定项目。我该如何允许这种情况?

<LayoutModificationTemplate
    xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification"
    xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout"
    xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout"
    xmlns:taskbar="http://schemas.microsoft.com/Start/2014/TaskbarLayout"
    Version="1">
....  
   <CustomTaskbarLayoutCollection PinListPlacement="Replace" >
      <defaultlayout:TaskbarLayout>
        <taskbar:TaskbarPinList>
          <taskbar:UWA AppUserModelID="Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge" />
          <taskbar:DesktopApp DesktopApplicationLinkPath="%APPDATA%\Microsoft\Windows\Start Menu\Programs\System Tools\File Explorer.lnk" />
          <taskbar:DesktopApp DesktopApplicationLinkPath="%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\xxxxlnk" />

        </taskbar:TaskbarPinList>
      </defaultlayout:TaskbarLayout>
   </CustomTaskbarLayoutCollection>


</LayoutModificationTemplate>

编辑:

这发生在 Win10 1703 上。

我以为这可能只是一些 NTFS 权限,但使用新的配置文件部署方法时,此 LayoutModification.xml 文件仅在创建时从默认用户复制到本地用户配置文件。在标准用户配置文件(具有标准用户权限)中,如果我在他们的 LayoutModification.xml 副本上编辑固定项目,它就会消失。这是一种解决方法,但并不是真正的解决方案。

答案1

在过去的一年里我多次回顾了这一点并得出结论,这是不可能的。

答案2

应用布局后尝试使用此脚本:

$regAliases = @("HKLM", "HKCU")

#Assign the start layout and force it to apply with "LockedStartLayout" at both the machine and user level

foreach ($regAlias in $regAliases){
    $basePath = $regAlias + ":\SOFTWARE\Policies\Microsoft\Windows"
    $keyPath = $basePath + "\Explorer" 
    IF(!(Test-Path -Path $keyPath)) { 
        New-Item -Path $basePath -Name "Explorer"
    }
    Set-ItemProperty -Path $keyPath -Name "LockedStartLayout" -Value 1
    Set-ItemProperty -Path $keyPath -Name "StartLayoutFile" -Value "C:\Windows\StartLayout.xml"
}

#Restart Explorer, open the start menu (necessary to load the new layout), and give it a few seconds to process

Stop-Process -name explorer
Start-Sleep -s 5
$wshell = New-Object -ComObject wscript.shell; $wshell.SendKeys('^{ESCAPE}')
Start-Sleep -s 5

#Enable the ability to pin items again by disabling "LockedStartLayout"

foreach ($regAlias in $regAliases){
    $basePath = $regAlias + ":\SOFTWARE\Policies\Microsoft\Windows"
    $keyPath = $basePath + "\Explorer" 
    Set-ItemProperty -Path $keyPath -Name "LockedStartLayout" -Value 0
}

#Restart Explorer and delete the layout file

Stop-Process -name explorer

相关内容