Scripting

Powershell .lnk 部署/同步 - lnk 描述屬性

  • November 7, 2009

我一直在研究一個 powershell 同步腳本,該腳本將用於控制使用者在桌面上擁有的內容(主要是 lnk/快捷方式文件)。我目前已將其設置為進行基本比較以添加/刪除/更新本地儲存的文件。我遇到的主要問題是我沒有很好的方法來區分部署的連結和使用者創建的連結。根據我同步文件的方式,我遇到了問題。

問題 1:如果我強制客戶端位置與伺服器保持同步,每次執行腳本時桌面上的所有內容都會被清除。

問題 2:如果我不強制客戶端同步,當我更改/刪除文件時,客戶端會保留這些文件。

因此,如果這有任何意義,我希望有人知道一種方法來標記我發送到本地電腦的文件。然後我可以建構我的腳本來查找該標誌並且只影響已部署的文件。

如果您的所有機器都使用 NTFS 格式的驅動器,那麼您可以使用備用數據流來儲存標記腳本添加的連結的消息。

自定義類方法(PowerShell v2):

http://poshcode.org/1430

COM方法:

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

另一種選擇是將消息寫入一些未使用的元數據項。下面是在 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)

引用自:https://serverfault.com/questions/70113