Powershell .lnk部署/同步 – lnk描述属性

我一直在研究一个PowerShell同步脚本,用来控制桌面上的用户(主要是lnk /快捷方式文件)。 我有它目前安装进行基本比较添加/删除/更新本地存储的文件。 我遇到的主要问题是,我没有一个很好的方法来区分已部署的链接和用户创build的链接。 根据我如何同步文件,我遇到了问题。

问题1:如果我强制客户端位置与服务器保持同步,则每次脚本运行时,桌面上的所有内容都将被清除。

问题2:如果我不强制客户端同步,当我更改/删除文件时,客户端保留这些文件。

所以,如果这是有道理的,我希望有人知道一种方法来标记我发送到本地计算机的文件。 然后,我可以构build我的脚本来查找该标志,只会影响部署的文件。

如果所有机器都使用NTFS格式的驱动器,则可以使用备用数据stream来存储标记脚本添加的链接的消息。

自定义类方法(PowerShell v2):

http://poshcode.org/1430

COM方法:

http://groups.google.de/group/microsoft.public.windows.powershell/msg/66697a0aba7ab9ec

另一种select是将消息写入一些未使用的元数据项目。 以下是在PowerShell中使用TagLib库的一个示例:

http://huddledmasses.org/editing-media-tags-from-powershell/

这里是使用COM的另一个例子,但是代码做了很多可以用标准的PowerShell命令完成的工作:

http://www.vistax64.com/powershell/70760-accessing-metadata.html

专注于使用这些线条:

$shellApp = new-object -com shell.application $myFolder = $shellApp.Namespace($dir) $fileobj = $myFolder.Items().Item($file) ... $v = $myFolder.GetDetailsOf($fileobj,$i) 

我想知道如果在文件的组属性上使用Get-AclSet-Acl将是一种有效的方法来标记文件以满足您的需要。