7068
Goto Top

Verknüpfung erstellen (target.lnk) per Script

Hi all

Heute Morgen habe ich voller erstaunen eine neue Art von Verkünpfung unter WinXP entdeckt.
Ich hatte von einem Netzlaufwerk einen Link eines Ordners via Drag&Drop im Startmenü erstellt. Nun hat es aber keinen "normalen" Link gegeben, sondern der Link verhält sich auch im Startmenü wie einer normaler Ordner.
Beim googlen fand ich heraus, das dies irgendwas mit der target.lnk zu tun hat. Wenn ich den Link auf eine Win2k Maschine kopiere, wird "Ordnerverkünpfung" angezeigt.

Nun bin ich auf der Suche nach einem Weg, diesen Link per Script zu erstellen oder zu kopieren. Leider scheiterte ich bis jetzt bei diesem Versuch.

Ein "xcopy c:\ORDNERLINK c:\test\ORDNERLINK "

funktioniert leider nicht. In dem neuen Ordner wird einfach nur die target.lnk angezeigt.

Hat jemand von euch ne Idee, wie sich dieser Link per Script erstellen lässt?
Oder evtl. noch einige Infos über diese Art von Link? (Ist das das gleich wie ein Hardlink?)

Danke für eure Hilfe.

mInCEr

1. Verknüpfungseigenschaften

53514dff09537a2933c26b607b80e3d4-veigenschaften

2. Verhalten im Startmenü

4c67627d35cd709856348b1599b46970-vstartmenue

3. Ansicht im Explorer

fee81d396877854f9420d3ec46602725-vexplorer

4. Cygwin "ls -la c:\Dokumente und Einstellungen\USER\Startmenü\Vorlagen3\"

19e951b0bd439c8224725019971bcc6a-vlsla

Content-Key: 50861

Url: https://administrator.de/contentid/50861

Ausgedruckt am: 29.03.2024 um 11:03 Uhr

Mitglied: Dani
Dani 06.02.2007 um 18:47:15 Uhr
Goto Top
G' Abend,
hört sich so an, als hättest du den Ordner vom Netzlaufwerk in das Starmenü kopiert.
Daher den Ordner im Menü wieder löschen!!
Also erstellen musst du den Link per Hand. Dazu den Ordner markieren, den Zeiger auf den Ordner, Rechtsklick, Verknüpfung erstellen. Somit hättest du mal einen Link, den du auch umbennen kannst.
Mit "copy Z:\pfadzuverknüpfung\deinlink.lnk" "%userprofil%\desktop" wird der Link auf deinen Desktop kopiert.
Eigentlich reicht es doch, wenn du den Link 1x auf den Desktop kopierst oder wird der wieder gelöscht!?


Gruß
Dani
Mitglied: 7068
7068 08.02.2007 um 08:57:41 Uhr
Goto Top
Hi Dani

Danke für deine Antwort.

Ich möchte denn Link ja nicht von Hand erstellen, sondern über einen Batchscript.
Wenn ich den Netzwerkordner per Drag&Drop ins Startmenü ziehe, wieder ein spezieller Link erstellt. Unter cygwin gibt ein "ls" im neu erstellten Ordnerlink folgendes her:

Desktop.ini target.lnk

Hier befinden sich also 2 Dateien die für diesen "Hardlink" verantwortlich sind.

Leider kann ich auf der standard Kommandozeile die beiden Dateien noch den Ordner kopieren, sodass der Link neu erstellt wird.

Kennt jemand von euch eine Möglichkeit, diese beiden Dateien oder den Link selber per Kommandozeile oder Script zu erstellen?

danke für eure Hilfe

mInCEr
Mitglied: Dani
Dani 08.02.2007 um 09:56:05 Uhr
Goto Top
G' Morgen,
Wenn ich den Netzwerkordner per Drag&Drop ins Startmenü ziehe, wieder ein spezieller Link erstellt.
Und wie das? Unter Windows gibt es standardmäßig keine Option einen Hardlink zu schaffen!! Oder war ich an diesem Tag mal wieder krank?! face-wink

Unter cygwin gibt ein "ls" im neu erstellten Ordnerlink folgendes her:
Desktop.ini target.lnk
Hast du den Link jetzt unter Windows oder cygwin erstellt?!


Desktop.ini target.lnk
Hier befinden sich also 2 Dateien die für diesen "Hardlink" verantwortlich sind.
Denke ich nicht. Da am Ende lnk steht und das eindeutig ein logische Verknüpfung ist.


Kennt jemand von euch eine Möglichkeit, diese beiden Dateien oder den Link selber per
Kommandozeile oder Script zu erstellen?
Du meinst, du willst selber HardLinks erstellen?! - Kein Problem, von MS gibt es im RessKit eine Exe names linkd.exe oder nimmst die Lösung von Sysinteral (jetzt MS) junction.exe.

Da du von einen Startscript schreibst, gehe ich davon aus, dass du eine Domäne verwaltest. So mit würde ich die entsprechende EXE auf das NETLOGON Verzeichnis legen. Somit hat jeder Rechner Zugriff und muss so nicht verteilt werden.

Script:
...
\\server\netlogon\dieexe.exe "ff" ddd"  
....

Gruß
Dani
Mitglied: 7068
7068 08.02.2007 um 11:21:29 Uhr
Goto Top
Hey Dani

Ich kannte diese Art von Verknüpfung bisher auch nicht.
Versuche eine Verknüpfung per Drag&Drop (Mit gedr. Shift+Ctrl-Taste) eines Ordners auf einem Netzlaufwerk ins Startmenü zu ziehen. Es entsteht eine Verknüpfung die wie ein Normaler Ordner ist jedoch auf den Netzwerkpfad zeigt.

Cygwin verwende ich nur um den Ordnerinhalt anzuzeigen, da ich mit der normalen Kommandozeile nicht alle Dateien in dem Ordner sehe. Mit der cygwin-bash sehe ich, das die neu erstellte Verknüpfung eigentlich ein Ordner ist indem die beiden Dateien Desktop.ini und target.lnk sind.

Ich denke "Hardlink" ist hier das falsche Wort. Hardlinks können ja nur innerhalb einer Partition erstellt werden und erfordern Admin-Rechte.

Nun bin ich auf der Suche nach einem Weg diesen Link per Script ins Startmenü zu kopieren oder zu erstellen. Der Link soll auf ein Verzeichnis mit den Dokumentvorlagen auf einem Netzlaufwerk zeigen. Jedoch soll im Startmenü eine Liste der Dokumente direkt angezeigt werden und nicht erst das Explorerfenster mit dem Inhalt angezeigt werden.

evtl. finde ich hier eine Lösung.

http://groups.google.ch/group/microsoft.public.scripting.wsh/browse_thr ...

Danke für deine Hilfe

mInCEr
Mitglied: Dani
Dani 08.02.2007 um 18:27:07 Uhr
Goto Top
Abend,
Ich kannte diese Art von Verknüpfung bisher auch nicht.
Versuche eine Verknüpfung per Drag&Drop (Mit gedr. Shift+Ctrl-Taste) eines Ordners auf
einem Netzlaufwerk ins Startmenü zu ziehen. Es entsteht eine Verknüpfung die wie ein
Normaler Ordner ist jedoch auf den Netzwerkpfad zeigt.
Also ich habe es gerade mal nachgemacht. WEnn ich Strg + Shift gedrück halte, einen Ordner auf einem Netzlaufwerke anklicke und ins Startmenü ziehe wird ein Ordner erstellt. Wenn du aber diesen Eintrag mal NUR mit der Maus markierst und dann Rechtsklick => Eigenschaften machst, steht dort "Verknüpfung..." => somit ist es eine ganz normale Verknüpfung!!! KEIN HARDLINK

Nun bin ich auf der Suche nach einem Weg diesen Link per Script ins Startmenü zu
kopieren oder zu erstellen.
Gut, du könntest den Link auf das NETLOGON Verzeichnis kopieren. Als einmal erstellen (mit strg + Shift). Dann diese Verknüpfung unter C:\Doku und ein\%username%\startmenü auf das NETLOGON Verzeichnis vom Server kopieren.

Schnipsel für Loginscript:
...
copy "\\server\netlogon\ver.lnk" "C:\Dokumente und Einstellungen\%username%\Startmenü" /v /y  
...
So müsste es eigentlich gehen!!


Gruß
Dani
Mitglied: 7068
7068 10.02.2007 um 09:51:40 Uhr
Goto Top
Hi Dani
Hi Leute

Ich habe im Artikel nun noch einige Screenshots hinzugefügt.

Wie ich eine normale Verknüpfung per Script kopieren kann ist mir klar. Verhält sich ja auch wie eine normale Datei.

Danke für eure Hilfe

mInCEr
Mitglied: Dani
Dani 10.02.2007 um 14:31:52 Uhr
Goto Top
Hi,
Problem gelöst?! Ja - Bitte den Thread als "gelöst" markieren. Dazu oben bei der Problembeschreibung auf editieren klicken und den entsprechenden Hacken setzen. Danke...


Gruß
Dani
Mitglied: 7068
7068 10.02.2007 um 16:50:01 Uhr
Goto Top
Hi Dani

Nein,ich konnte das Problem bis jetzt nicht lösen!

Wäre also froh wenn mir irgendjemand sagen könnte was es mit dieser Verknüpfung auf sich hat. Weiss jemand was das für eine Art von Verknüpfung ist und wie man Sie per Script erstellen kann?
Ich habe noch herausgefunden, das in der Desktop.ini die in diesem Ordner liegt auf eine CSID verwiesen wird. In der Registry lässt sich das auch auffinden. ...

Danke

mInCEr
Mitglied: Dani
Dani 10.02.2007 um 17:08:30 Uhr
Goto Top
Hi,
also das ist eine ganznormale Verknüpfung!! Sowie diese auf dem Desktop. Das hat mit der desktop.ini gar nichts zu tun.
Warum das so angezeigt wird?! Ist vom Startmenü so augelegt. => vom Programmierer bzw. von Microsoft.

bis das nächste weibliche wesen vorbeikommt
Kopier sie doch mit dem Loginscript!!


Gruß
Dani
Mitglied: 7068
7068 12.02.2007 um 08:58:50 Uhr
Goto Top
also wenn das eine Normale Verknüpfung wäre, dann würde einfach nur eine Verknüpfung.lnk auf dem Dateisystem liegen.
Ich habe hier aber einen Ordner der "Vorlagen" heisst und die Dateien Desktop.ini sowie target.lnk enthält.
Vom Verhalten her scheint der Link wie ein Hardlink.

mInCEr
Mitglied: Dani
Dani 12.02.2007 um 09:14:46 Uhr
Goto Top
G' Morgen,
die Desktop.ini wirst du auch in Programme und Zubehör finden. Die spielt keine Rolle.

Mach mal folgendes:
1.) Klicke das Netzlaufwerk an (mit der linken Maustaste). Danach ziehst du mit der rechten Taste eine Verknüpfung in C:\. Bestätigung mit "Verknüpfung hier erstellen => Ergebnis: verk....lnk

2.) Klicke das Netzlaufwerk an (mit der linken Maustaste). Danach ziehst du mit der rechten Taste eine Verknüpfung in C:\Doku und Ein\deinuser\startmenü.Bestätigung mit "Verknüpfung hier erstellen => Ergebnis: verk....

Fazit:
Das liegt an der Programmierung des Startmenüs. Sprich du kannst daran nix ändern, ist von MS so gewollt. => Das sind normale symbolische Links die anders interpretiert werden.


Grüße
Dani
Mitglied: 7068
7068 12.03.2007 um 11:20:39 Uhr
Goto Top
Hi Leute

Ich konnte nun mein Problem mit dieser Verknüpfung über ein VB-Script lösen.

Datei vorlagen.vbs


Const CONST_HIDDEN = 2
Const CONST_SYSTEM = 4

'Hier das Link-Ziel eintragen
Const Target = "d:\Vorlagen"
'Hier den Link Namen oder den kompletten Pfad
Const SName = "c:\Vorlagen"

Dim oshshell
Dim newShortcut
Dim fsObject
Dim newFolder
Dim newINI

Set oshshell = WScript.CreateObject("Wscript.shell")
Set fsObject = CreateObject("Scripting.FileSystemObject")

fsObject.CreateFolder(SName)
Set newFolder = fsObject.GetFolder(SName)
newFolder.Attributes = CONST_SYSTEM

Set newINI = fsObject.CreateTextFile(SName & "\desktop.ini", True)
newINI.WriteLine "[.ShellClassInfo]"
newINI.WriteLine "CLSID2={0AFACED1-E828-11D1-9187-B532F1E9575D}"
newINI.WriteLine "Flags=2"
newINI.WriteLine "ConfirmFileOp=0"
newINI.Close
Set newINI = fsObject.GetFile(SName & "\desktop.ini")
newINI.Attributes = (CONST_SYSTEM + CONST_HIDDEN)

Set newShortcut = oshshell.CreateShortcut(SName & "\target.lnk")
newShortcut.TargetPath = Target
newShortcut.Save
Set newShortcut = fsObject.GetFile(SName & "\target.lnk")
newShortcut.Attributes = (CONST_HIDDEN)

Set newShortcut = Nothing
Set oshshell = Nothing
Set fsObject = Nothing
Set newFolder = Nothing
Set newINI = Nothing


Ausführen tuhe ich das ganze mit Kixstart und der Befehlszeile:

run "C:\WINDOWS\System32\WScript.exe \\SERVER\netlogon\files\vorlagen.vbs"

Gruss

mInCEr
Mitglied: bluepete
bluepete 12.05.2009 um 01:23:33 Uhr
Goto Top
danke für das script. funktioniert bestens
Mitglied: tom1stein
tom1stein 22.02.2021 aktualisiert um 16:01:37 Uhr
Goto Top
Es ist 11 Jahre her, aber hier fehlt immer noch die eigentliche Erklärung der tatsächlich 2 Dateien in einem neuen Ordner. Da fast alle hier drüber stehenden Vermutungen falsch sind, hier ein Link zur Auflösung für alle, die dies noch über Suchmaschinen finden (wie ich vor einer halben Stunde): https://superuser.com/questions/1114114/how-to-create-a-filefolder-in-wi ...