5

我一直在尝试查找有关存储在从 MS-Office for SharePoint 库生成的 url 快捷方式中的值的任何信息。我们正在从 Office 2007 迁移到 Office 365,2007 创建这些链接的功能在 Office 365 中似乎不可用。

如果在另存为对话框中单击 .url 文件时没有 IDList 值,它会将文件名更改为快捷方式。我尝试将 .url 更改为 .lnk 但非办公应用程序无法处理它们。

.url 文件的内容

[InternetShortcut]
IDList=UAwHYBGLNCi66kGEieNCAsCMw0pTAMcAlzFXj9mZr5yalx2b35WYuMWYcRUY2d1VXJ1bvRHAXVmYgMEbpVmb0BiTlR3dvJ3aAgGd0BnOv8yYvZ2ausWZs92duFmLjFGAuAATAEDAAAAAAAAAAAAEAQXZh12cAgDAIAABA8uvAAAAAAAAAAgKAAAAAAAAAAAAAAAAAAAA8gPuuBAAAAAAAQHAlBQYA0GAzBAAAQBAKBQMAAAAAAAAAAAAQAQZk12cAAgNAgAAEAw7+CAAAAAAAAAAqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQZAQGAtBwcAAAAUAAAAA
URL=file://blart/DavWWWRoot/teams/edms
IconFile=C:\ProgramData\Microsoft\Office\SharePointTeamSite.ico
IconIndex=0
[{000214A0-0000-0000-C000-000000000046}]
Prop3=19,9

同一用户重新生成的文件

IDList=UAwHYBGLNCi66kGEieNCAsCMw0pTAMcAlzFXj9mZr5yalx2b35WYuMWYcRUY2d1VXJ1bvRHAXVmYgMEbpVmb0BiTlR3dvJ3aAgGd0BnOv8yYvZ2ausWZs92duFmLjFGAuAATAEDAAAAAAAAAAAAEAQXZh12cAgDAIAABA8uvAAAAAAAAAAgKAAAAAAAAAAAAAAAAAAAA0baRNAAAAAAAAQHAlBQYA0GAzBAAAQBAKBQMAAAAAAAAAAAAQAQZk12cAAgNAgAAEAw7+CAAAAAAAAAAqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQZAQGAtBwcAAAAUAAAAA

来自另一个用户的文件的值

IDList=UAwHYBGLNCi66kGEieNCAsCMw0pTAMcAlzFXj9mZr5yalx2b35WYuMWYcRUY2d1VXJ1bvRHAXVmYgMEbpVmb0BiTlR3dvJ3aAgGd0BnOv8yYvZ2ausWZs92duFmLjFGAuAATAEDAAAAAAAAAAAAEAQXZh12cAgDAIAABA8uvAAAAAAAAAAgKAAAAAAAAAAAAAAAAAAAA4BZpCAAAAAAAAQHAlBQYA0GAzBAAAQBAKBQMAAAAAAAdHBlfQAQZk12cAAgNAgAAEAw7+qXQJdJdHBlfqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQZAQGAtBwcAAAAUAAAAA

我无法弄清楚如何解码这个值,或者我无法弄清楚其中存储了哪些数据。我已经阅读了一堆不同的方法来以编程方式使用 Windows 脚本和 shell 32 在 Powershell 和 C# 包装器中创建快捷方式,C++ 寻找任何信息。我唯一的希望是shell链接也有一个pidl的项目ID列表,但我无法确认这是否相关。

我所知道的是 IDList 可以移动到另一个 .url ,它会带你到原始路径。IDList 的某些部分会根据创建它们的用户和重新创建 url 文件的时间而变化。

Internet 快捷方式 https://msdn.microsoft.com/en-us/library/bb776784(v=vs.85).aspx

外壳链接 https://msdn.microsoft.com/en-us/library/dd891312.aspx

4

1 回答 1

1

.URL 文件格式没有正式记录,仅记录了 IDList 格式的前 2 个字节

我相信 IDList 字符串过去是通过调用存储的,WritePrivateProfileStruct并且在某些时候更改为您发布的格式。一个名为TextToBinary将字符串解码为IStream实例的函数,但我没有费心去弄清楚格式。流被填充到 aPROPVARIANT中,记录的IUniformResourceLocator接口知道如何为您处理所有这些,但不幸的是,idlist 条目没有记录为您可以读/写的属性。

.INI 字符串解码和一些基本格式之后的 PIDL (IDList) 如下所示:

:1: 20 bytes
  {208D2C60-3AEA-1069-A2D7-08002B30309D}:Network
:2: 78 bytes
  4E 00 C3 01 E5 5C 5C 63  6F 66 6B 2E 6B 65 6C 6F  N....\\c ofk.kelo
  77 6E 61 2E 63 61 5C 44  61 76 57 57 57 52 6F 6F  wna.ca\D avWWWRoo
  74 00 57 65 62 20 43 6C  69 65 6E 74 20 4E 65 74  t.Web Cl ient Net
  77 6F 72 6B 00 68 74 74  70 3A 2F 2F 63 6F 66 6B  work.htt p://cofk
  2E 6B 65 6C 6F 77 6E 61  2E 63 61 00 2E 00 __ __  .kelowna .ca...
:3: 76 bytes
  4C 00 31 00 00 00 00 00  00 00 00 00 10 00 74 65  L.1..... ......te
  61 6D 73 00 38 00 08 00  04 00 EF BE 00 00 00 00  ams.8... ........
  00 00 00 00 2A 00 00 00  00 00 00 00 00 00 00 00  ....*... ........
  00 00 00 00 3C F8 B8 6E  00 00 00 00 00 00 74 00  ....<..n ......t.
  65 00 61 00 6D 00 73 00  00 00 14 00 __ __ __ __  e.a.m.s. ....
:4: 74 bytes
  4A 00 31 00 00 00 00 00  00 00 00 00 10 00 65 64  J.1..... ......ed
  6D 73 00 00 36 00 08 00  04 00 EF BE 00 00 00 00  ms..6... ........
  00 00 00 00 2A 00 00 00  00 00 00 00 00 00 00 00  ....*... ........
  00 00 00 00 00 00 00 00  00 00 00 00 00 00 65 00  ........ ......e.
  64 00 6D 00 73 00 00 00  14 00 __ __ __ __ __ __  d.m.s... ..
:5: 0 bytes

并且要求 shell 转换此 PIDL 后的结果是\\cofk.kelowna.ca\DavWWWRoot\teams\edms.

您发布的 3 个示例之间的区别仅在于 PIDL ( teams\edms) 的路径部分,可能是文件夹的修改日期或未初始化的数据。

于 2019-06-04T19:57:43.187 回答