Home PowerShell Dateisystem Verknüpfungen im NTFS Dateisystem, HardLink, Junction Point oder SymLink, mit PowerShell
formats

Verknüpfungen im NTFS Dateisystem, HardLink, Junction Point oder SymLink, mit PowerShell

Daten an mehreren Orten doppelt abspeichern und auch doppelt pflegen ist nicht nötig.
Dafür hat Microsoft verschiedene Arten von Dateiverknüpfungen im Angebot.
So kann man dieselben Daten leicht mit verschiedenen Namen ansprechen.

Um bequem mit Verknüpfungen und der PowerShell arbeiten zu können,
Installiert man sich am besten das Modul „PowerShell Community Extensions (PSCX)“ und nutzt die cmdlets daraus.

Ich stelle hier kurz die einzelnen cmdlets dafür vor.

Die Verknüpfung (Shortcut) über eine .LNK Datei

  • Gibt es seit Windows 95
  • Besteht aus einer Datei die auf eine andere Datei oder Ordner zeigt.
  • Im Speicherverbrauch sehr klein
  • Bemerkt nichts vom ändern/Löschen des Ziels.
  • Wird im Explorer als Datei und nicht als Verzeichnis angezeigt
    wenn die Verknüpfung auf ein Verzeichnis zeigt.
  • Die Verknüpfung ist nicht „transparent“.
  • Das heißt, viele Befehle können nicht durch die Verknüpfung das
    Ziel zugreifen.

Mit der PowerShell werden .LNK Dateien mit dem PSCX cmdlet New-Shortcut erstellt.
Eine vorhandene Verknüpfung wird ohne Vorwarnung überschrieben.
Verknüpfung zu (http) URL Zielen können mit dem cmdlet nicht erstellt werden.

Syntax: New-Shortcut <Pfad_\_Name_LNK_Datei> <Ziel-Pfad>

URL-Verknüpfung über eine .URL Datei

  • Hier gelten dieselben Vor- und Nachteile wie bei den .LNK Dateien.

Ein cmdlet zur Erstellung einer URL-Verknüpfung gibt es nicht.
Hier muss sich PowerShell sich mit Hilfe von einem Visual Basic Script COM Objekt helfen.


Die im Folgenden Vorgestellten Hardlinks und Junction Points sind in das Dateisystem NTFS integriert.
Die meisten Programme und Befehle bemerken dadurch nicht, dass sie mit einer Verknüpfung arbeiten.
Diese Verknüpfungen sind also transparent und man kann durch sie direkt auf das Ziel der Verknüpfung zugreifen.
Symbolische Links (SymLinks) sind eigene Dateien, sind aber ebenso transparent!


HardLinks (Harter Link) für Dateien

  • HardLinks gibt es seit Windows 2000 / XP
  • Belegt keinen zusätzlichen Speicherplatz, da der Eintrag in der Datei selbst gemacht wird.
  • HardLinks können nur innerhalb einer Festplatten-Partition verweisen.
  • HardLinks können nur auf Dateien verweisen.

Mit der PowerShell werden HardLinks mit dem PSCX cmdlet New-Hardlink erstellt.

Syntax: New-Hardlink <Pfad_\_Dateiname > <Ziel-Pfad>

Den HardLink löscht man mit dem cmdlet Remove-Item.
Die Zieldatei bleibt solange bestehen bis kein HardLink mehr vorhanden ist. Erst dann wird die Datei selbst gelöscht.

Junction Points HardLinks für Verzeichnisse (Junctions)

  • Junctions gibt es seit Windows 2000 / XP.
  • Junction Points sind vom Typ NTFS reparse point (eine eigene Datei).
  • Junctions können nur innerhalb der Festplatten des selben Systems (Computer) verweisen.
  • Junctions können nur auf Verzeichnisse verweisen.
  • Wird der Ziel Ordner gelöscht bleibt der Junction Point verwaist zurück und zeigt ins leere!

Mit der PowerShell werden Junction Points mit dem PSCX cmdlet New-Junction erstellt.

Syntax: New-Junction <Pfad_\_Verzeichnisname > <Ziel-Pfad>

Das Ziel (Target) der Junction kann mit dem PSCX cmdlet Get-ReparsePoint angesehen  werden.

Eine Junction Point löscht man mit dem PSCX cmdlet Remove-ReparsePoint das Ziel bleibt dabei unberührt.

Symbolischer Link (Symbolic Link)

  • Gibt es seit Windows Server 2008 und Vista
  • Symlinks sind vom Typ NTFS reparse point (eine eigene Datei).
  • Sie bieten dieselben Möglichkeiten wie HardLinks und die Junction Points, können aber auch für Netzwerkpfade (UNC) angelegt werden.
  • Sie sind also ein guter Ersatz für HardLinks und Junction points.

Mit der PowerShell werden SymLinks mit dem PSCX cmdlet New-Symlink erstellt.

Syntax: New-Symlink <Pfad_\_Verzeichnisname > <Ziel-Pfad>

Das Ziel (Target) des Symlink kann mit dem PSCX cmdlet Get-ReparsePoint angesehen werden.

Eine Symlink löscht man mit dem PSCX cmdlet Remove-ReparsePoint das Ziel bleibt dabei unberührt.


Hinweis:Das Modul PSCX erweitert den .NET Typ System.IO.DirectoryInfo um das
Script-Property ReparsePoint.
Ist das Property ReparsePoint leer, so liegt keine Verknüpfung vor (Symlink oder Junction Point).Ansonsten können dort folgende Eigenschaften ausgelesen werden: 

Path Pfad wo die Verknüpfung
liegt
 ReparsePointTag Art der Verknüpfung
 Target Ziel zu dem die
Verknüpfung zeigt.

Zusatz Informationen:
Wikipedia:

Symlink: http://de.wikipedia.org/wiki/Symbolische_Verkn%C3%BCpfung
Harter Link : http://de.wikipedia.org/wiki/Harter_Link
Junction Point (Englisch) : http://en.wikipedia.org/wiki/NTFS_junction_point

Informationen über die PSCX http://www.it-visions.de/Lex/4835.aspx
Download der PSCX: http://pscx.codeplex.com/
Installationsanleitung PSCX : http://notizblogck.wordpress.com/tag/pscx/

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
Kommentare deaktiviert  comments