MKLINK vs. Junction.exe

27

SysInternals ma program junction.exe, który tworzy połączenia (czyli punkty ponownej analizy , zwane także dowiązaniami symbolicznymi) w systemie Windows.

Jednak system Windows jest również wyposażony w łącze mklink, które wydaje się robić to samo.

Czy jest znacząca różnica?

Wydaje mi się, że jeśli SysInternals ma swój własny program, zauważyli brak standardowego programu MKLink.

Abelenky
źródło
5
Junctionzostał opublikowany we wrześniu 2010 r., zgodnie z linkowaną stroną. Podobnie strona, do MKLINKktórej prowadzi łącze, ma datę publikacji w kwietniu 2012 r. Wydaje się, że zdecydowanie wskazuje to, że Junctionzostała utworzona przed dodaniem mklinkpliku wykonywalnego do systemu Windows. (Nie zagłębiałem się w to, kiedy każdy z nich się pojawił, stąd komentarz zamiast pełnej odpowiedzi. Jeśli ktoś chce rozwinąć tę kwestię i udzielić właściwej odpowiedzi, bądź moim gościem.)
CV
Ups! Tęsknie za tym. Wygląda na to, że Junction wcześniej mklink. Dzięki.
abelenky

Odpowiedzi:

41

Porównanie

Program Marka Russinowicza junctionzostał zaprojektowany z myślą o konkretnym celu: tworzeniu (i usuwaniu) punktów połączeń. Został utrzymany przez lata, ale do tej pory nie dodano żadnych nowych funkcji. Najnowsza wersja została wydana 4 lipca 2016 r.

Jeśli chodzi o mklink, jest to wbudowane polecenie dostępne w systemie Windows Vista i nowszych. Może tworzyć twarde łącza, punkty połączeń i dowiązania symboliczne. Nie ma określonej funkcji usuwania; możesz po prostu użyć poleceń dellub rd, w zależności od tego, czy link wskazuje odpowiednio plik lub katalog.


Trochę historii

W wersjach wcześniejszych niż Vista systemy operacyjne Windows nie zapewniały możliwości tworzenia punktów połączenia po wyjęciu z pudełka: albo trzeba było uzyskać kopię oficjalnego zestawu zasobów , użyć programu innej firmy, albo napisać go samodzielnie.

2000

Pierwsza wersja junctionnarzędzia została wydana. Cytując oficjalną stronę internetową:

Windows 2000 i nowsze wersje obsługują dowiązania symboliczne katalogu, gdzie katalog służy jako dowiązanie symboliczne do innego katalogu na komputerze. [...]

Niestety, system Windows nie zawiera narzędzi do tworzenia skrzyżowań - musisz zakupić zestaw zasobów Win2K, który jest dostarczany z linkdprogramem do tworzenia skrzyżowań. Dlatego postanowiłem napisać własne narzędzie do tworzenia połączeń: Junction .

Źródło: Junction

2005-06

mklinkPolecenie zostało wprowadzone w systemie Windows Vista we wczesnej fazie beta.

Był dostępny od czasu oficjalnej wersji beta 1 dostarczonej 27 lipca 2005 r. Początkowo mógł tworzyć tylko dowiązania symboliczne i dowiązania twarde; możliwość tworzenia punktów połączenia pojawiła się później wraz z Community Technology Preview (CTP) wydanym 19 grudnia 2005 r.

Najwyraźniej polecenie pozostało całkowicie niezauważone do pewnego czasu w 2006 r., Kiedy to zostało po raz pierwszy ujawnione. Oto najwcześniejsze odniesienie, jakie udało mi się znaleźć:

Możesz teraz utworzyć łącze symboliczne w systemie Windows Vista.

C:\test>ver

Microsoft Windows [Version 6.0.5365]

C:\test>mklink
Creates a symbolic link.

MKLINK [[/D] | [/H] | [/J]] Link Target

[...]

Źródło: Symboliczne łącze w systemie Windows Vista

Również:

Malcolm [MSFT] (ekspert):
P: Czy istnieje naprawdę łatwy sposób na utworzenie dowiązania symbolicznego?
Odp .: Otwórz CMD i wpisz „mklink”. To narzędzie pozwoli ci tworzyć skrzyżowania, dowiązania twarde i dowiązania symboliczne.

Źródło: NTFS Beta Chat Transcript (12 lipca 2006)


Dodatkowe informacje

Plik lub katalog może zawierać punkt ponownej analizy, który jest zbiorem danych zdefiniowanych przez użytkownika. Format tych danych jest rozumiany przez aplikację, która przechowuje dane, oraz filtr systemu plików, który instalujesz w celu interpretacji danych i przetworzenia pliku.

Na przykład punkty ponownej analizy są używane do implementowania łączy systemu plików NTFS i Microsoft Remote Storage Server (RSS).

Źródło: Punkty ponownej analizy

Istnieją trzy typy łączy plików obsługiwanych w systemie plików NTFS: twarde łącza, połączenia i dowiązania symboliczne.

Źródło: twarde linki i połączenia

Twarde linki

Twarde łącze to reprezentacja systemu plików dla pliku, w której więcej niż jedna ścieżka odwołuje się do jednego pliku w tym samym woluminie. [...] Wszelkie zmiany w tym pliku są natychmiast widoczne dla aplikacji, które uzyskują do niego dostęp za pośrednictwem linków, które go odwołują. Jednak rozmiar pozycji katalogu i informacje o atrybucie są aktualizowane tylko dla łącza, przez które wprowadzono zmianę.

Źródło: twarde linki i połączenia

Skrzyżowania

Złącze (zwane także łączem miękkim) różni się od łącza twardego tym, że obiekty pamięci, do których się odwołuje, są oddzielnymi katalogami, a złącze może łączyć katalogi znajdujące się w różnych woluminach lokalnych na tym samym komputerze.

Źródło: twarde linki i połączenia

Punkty połączeń mogą łączyć się tylko z katalogami w lokalnym woluminie; punkty połączenia ze zdalnymi udziałami nie są obsługiwane.

Źródło: Punkt połączenia NTFS

Linki symboliczne

Dowiązanie symboliczne to obiekt systemu plików, który wskazuje na inny obiekt systemu plików. Wskazany obiekt nazywa się celem.

Linki symboliczne są przezroczyste dla użytkowników; łącza wyglądają jak zwykłe pliki lub katalogi i mogą być przetwarzane przez użytkownika lub aplikację w dokładnie taki sam sposób.

Źródło: dowiązania symboliczne

[Dowiązania symboliczne] zostały wprowadzone wraz z modyfikacjami systemu plików NTFS w systemie Windows Vista , ale są dostępne za pośrednictwem sterowników filtrów dla systemu Windows XP .

W przeciwieństwie do punktu połączenia NTFS (dostępnego od Windows 2000), dowiązanie symboliczne może również wskazywać na plik lub ścieżkę sieci zdalnej SMB . Podczas gdy punkty połączenia NTFS obsługują tylko ścieżki bezwzględne na dyskach lokalnych, dowiązania symboliczne NTFS umożliwiają łączenie przy użyciu ścieżek względnych.

Domyślne ustawienia zabezpieczeń w systemie Windows Vista / Windows 7 zabraniają administratorom bez uprawnień i wszystkim użytkownikom innym niż administratorzy tworzenia dowiązań symbolicznych.

Źródło: dowiązanie symboliczne NTFS

Dalsza lektura

i31415
źródło
Jeśli masz zamiar udzielić o wiele bardziej szczegółowej odpowiedzi niż moja, równie dobrze możesz wspomnieć, że punkty ponownej analizy NTFS to kolejny smak.
paradroid
(w odniesieniu do twardych linków, dla wyjaśnienia)
paradroid
Odpowiedź czystej jakości.
pokaż
2
Uwaga: Istnieją dowiązania symboliczne „plikowe” (utworzone zwykłym mklinkniezależnie od typu docelowego) i istnieją dowiązania symboliczne „katalogowe” (utworzone przez mklink /d). Najlepiej jest utworzyć odpowiedni typ linku do celu.
kbolino
Jestem ciekawy, dlaczego junction.exe został zaktualizowany w 2016 roku i dlaczego nadal dostarczają go z SysInternals? Czy są przeciwko deportacji? Pomyśl o tym, tak, są ... Prawdopodobnie połowa tych narzędzi ma wystarczającą liczbę zamienników w systemie Windows. Doskonała szczegółowa odpowiedź.
Adam Plocher,
2

Jak już wspomniano w komentarzach, junction.exepojawiło się przed Vista / Winserver 2008, który został dostarczony z mklinkpoleceniem.

Dlatego nie ma sensu używać go w systemie Vista. W każdym razie wersje systemu Windows starsze niż Vista nie są już obsługiwane.

Ponadto junction.exenie obsługuje łączy symbolicznych NTFS (tylko połączenia NTFS ), które zostały wprowadzone w systemie Vista / WinServer 2008 i mlinkpoleceniu.

paradroid
źródło