1

Тема: VBScript: создание ярлыка в Сетевом окружении

Задача заключалась в создании "ярлыка" в Сетевом окружении. Но не обычного lnk, а такого, какой создает мастер Add Network Place. А этот мастер вместо обычного ярлыка создает папку с именем ссылки, внутри которой содержатся файлы Desktop.ini и target.lnk.
Папку, созданную вручную, Проводник "ярлыком" считать не желает. Как оказалось весь секрет - в атрибутах этой папки.

' Создание ярлыка на сетевой ресурс в папке NetHood
' (Аналогично создаваемому с помощью мастера Add Network Place)
ShortCutName = "MyNetFolder"
ShortCutPath = "\\Server\Share"

Set WshShell = CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
NetHood = WshShell.SpecialFolders("NetHood")

FolderShortcut = NetHood & "\" & ShortCutName
FSO.CreateFolder FolderShortcut
FSO.GetFolder(FolderShortcut).Attributes = 1 ' Без атрибута ReadOnly Проводник будет считать наш ярлык обычной папкой

With FSO.OpenTextFile(FolderShortcut & "\Desktop.ini", 2, True)
    .Write "[.ShellClassInfo]" & vbNewLine & "CLSID2={0AFACED1-E828-11D1-9187-B532F1E9575D}" & vbNewLine & "Flags=2"
    .Close
End With

With WshShell.CreateShortcut(FolderShortcut & "\target.lnk")
    .TargetPath = ShortCutPath
    .Save()
End With