7

我将尝试以更舒适且不依赖于用户的方式编辑 Windows 8.1 StartScreen。

我知道这不是 Microsoft 使用其操作系统的方式,但在企业环境中必须有一种方法来自定义 StartScreen。Fe 如果我部署一个新的软件包,StartScreen 上应该有图标(在正确的组中,在预定义的位置上)。

所以,我发现这些文件appsFolder.itemdata-ms都是appsFolder.itemdata-ms.bak二进制编码的。如果我在十六进制编辑器中打开它们,则会有几个组名和链接可见,但不是转储格式。也无法以需要的方式在 hexeditor 中编辑此图块。

部分appsFolder.itemdata-ms

?%?????☺↔         ▼   ♠   S t o r e           Y+↨♣♦?BGJ   F   1SPS?w?

我尝试编写一个解码器(使用 C#),但没有成功,可以查看所有内容,但只能像在十六进制编辑器中一样。

尝试了 PowerShell 命令Export-StartLayout -as xml,所有内容都以正确的方式、组、图块、位置导出到:

导出.xml

<launcher version="2">
   <view name="Start">
     <group name="Desktop">
       <tile FencePost="0" size="wide310x150" AppID="Microsoft.Windows.Desktop"/>
       <tile FencePost="0" size="square150x150" AppID="Microsoft.InternetExplorer.Default"/>
       <tile FencePost="0" size="square150x150" AppID="Chrome"/>
     </group>
     <group name="Entwicklung">
       <tile FencePost="0" size="square150x150" AppID="{7C5A40EF-A0FB-4BFC-874A-C0F2E0B9FA8E}\Fiddler2\Fiddler.exe"/>
       <tile FencePost="0" size="square150x150" AppID="{7C5A40EF-A0FB-4BFC-874A-C0F2E0B9FA8E}\Notepad++\notepad++.exe"/>
      </group>
    </view>
</launcher>

但是Import-StartLayout无法按预期工作,使用此命令之前导出的布局无法应用于当前用户(仅通过使用 gpo,但随后开始屏幕被锁定)。

我还使用 ILSpy检查了 PowerShell Cmt-Lets,但这以非托管代码部分结束。

长话短说,有没有办法解码二进制文件以编辑它们(可能是第三方工具?)并将它们写回以将更改应用到当前用户?

4

3 回答 3

4

不,这是不可能的,这是设计使然(不是我同意该设计选择)。关于这个,我与 Windows 产品组有过几次争论。

它类似于微软锁定任务栏的方式。见这里

"注意:应用程序不能以编程方式将自己固定到任务栏。该功能是严格为用户保留的。"

任何一个:

  1. 您可以通过组策略或在图像内为所有用户设置开始屏幕磁贴。(锁定环境)
  2. 您允许用户根据需要自定义他们的桌面(用户定义的环境)。
于 2013-10-09T17:14:09.257 回答
2

我也在寻找编辑开始屏幕数据文件的方法。我已经通过 GPO 让它工作,我使用 .Net Reflector 来分析 Export-StartLayout cmdlet。它通过在 windows\system32\twinapi.dll 中定义的 COM 接口上调用方法来工作,因此不容易解码数据文件格式。

xml 文件包含在注册表中定义的 APP ID,可以通过 PS get-startapps cmdlet 列出,因此可以为此创建一个编辑器。

我与学校和大学合作,因此对控制桌面的要求很高。目前,我处理的大多数学校都因为这些问题而远离 Windows 8。似乎MS只是不听人们真正需要的东西!

于 2013-12-09T17:29:46.793 回答
1

确保以二进制格式导出配置文件,因为 Import-StartLayout 不会导入 XML 文件。这是导出命令:

Export-StartLayout -As BIN -Path CustomStartScreenLayout.bin -Verbose
于 2014-06-27T19:06:38.187 回答