Share via


Symlink, czyli MKLINK w Windows Server 2008

System Windows Server 2008 Core budzi wiele kontrowersji, ale i zainteresowania wsród administratorów róznych typów systemów operacyjnych. Z racji tego, ze z serwerem Core mam przyjemnosc pracowac juz troche czasu, zastanawialam sie jak ulatwic sobie prace i jakie mechanizmy mi w tym pomoga. Narzedziem, bez którego nie wyobrazam sobie pracy serwerem Core jest mklink, umozliwiajace tworzenie dowiazan symbolicznych (symlink) do obiektów w systemie plików NTFS. Kiedys juz mialam okazje opisywac to narzedzie, ale z racji tego, ze podczas ostatniego wdrozenia bardzo zaciekawilo, pochodzacych z “alternatywnej rzeczywistosci” (Unix), administratorów, postanowilam ponownie umiescic te informacje.

Narzedzie to jest znane uzytkownikom Windows Vista i Windows Server 2008, tak naprawde jednak jego zalety odkrywa sie przy pracy z konsola. Niestety, administratorzy Unix nadal ze swoim zestawem narzedzi konsolowych wioda prym, nie zmienia to jednak faktu, ze jest to duzy krok naprzód rozwiazujacy niektóre problemy w pracy z konsola, przynajmniej dla mnie.

Narzedzie mklink jest równiez poleceniem systemowym, wystarczy wpisac jego nazwe w konsoli i otrzymuje sie liste dostepnych parametrów:

Polecenie MKLINK - parametry

 Rysunek 1. Parametry polecenia mklink.

Znaczenie poszczególnych opcji:

- link - alias dla tworzonego dowiazania
- target - miejsce docelowe, do którego ma zostac utworzone dowiazanie
- mklink link target - polecenie bez parametrów tworzy dowiazanie miekkie (soft link) do pliku
- /D - tworzy dowiazanie symboliczne lub miekkie. Dziala podobnie do skrótów do folderów
- /H - tworzy dowiazanie twarde (hard link) wskazujace bezposrednio na plik. Opcja ta nie moze byc bezposrednio wykorzystana do folderów, nalezy wykorzystac do tego opcje /J
- /J - tworzy punkt polaczenia do folderu (Directory Junction). Spelnia funkcje dowiazania twardego do folderu, funkcja punktów polaczenia jest proste przekierowanie do wybranego miejsca

Róznica pomiedzy dowiazaniami twardymi (hard links) a miekkimi (soft links):

Dowiazanie twarde - wskazuje bezposrednio na plik, wzgledem systemu operacyjnego samo jest plikiem. Chcac oszukac folder, w którym znajduje sie oryginalny plik, jest to idealna do tego celu opcja. Nadaje etykiete dla dowiazania w postaci pliku widocznego przez system operacyjny.

Dowiazanie miekkie - jest skrótem do pliku lub folderu, dwukrotne klikniecie w dowiazanie miekkie powoduje automatyczne przekierowanie do folderu docelowego. Nadaje etykiete dla dowiazania w postaci skrótu wskazujacego na folder lub plik.

Przyklady uzycia mklink w systemie Windows Server 2008 Core:

1. mklink /J DoTestowego C:\Users\Paula\Testowy - utworzenie punktu polaczenia o nazwie DoTestowego wskazujacego na wczesniej utworzony folder C:\Users\Paula\Testowy

 Przyklad 1
Rysunek 2. Utworzenie punktu polaczenia.

W punkcie polaczenia DoTestowego wczesniej utworzony plik „plik.txt” w folderze Tesotwy, równiez jest widoczny.

2. mklink Notatnik.exe C:\Windows\System32\notepad.exe - utworzenie symbolicznego dowiazania miekkiego do pliku notepad.exe. Od tej pory wpisujac Notatnik.exe w systemie bedzie otwieral sie Notatnik.

Przyklad 2
Rysunek 3. Utworzenie symbolicznego dowiazania miekkiego.

3. mklink /H DoTestowegoHard C:\Users\Paula\Testowy - próba utworzenia dowiazania twardego do folderu. Aby polecenie zadzialalo nalezy dodatkowo skorzystac z opcji /J. W efekcie powstaje punkt polaczenia.

Przyklad 3
Rysunek 4. Utworzenie punktu polaczenia.

4. mklink /D DoTestowegoSoft C:\Users\Paula\Testowy - utworzenie symbolicznego dowiazania do folderu Testowy.

Przyklad 4
Rysunek 5. Utworzenie symbolicznego dowiazania miekkiego.

5. mklink /D /J DoTestowegoSoftJuction C:\Paula\Testowy - utworzenie punktu polaczenia do folderu Testowy.

Przyklad 5
Rysunek 6. Utworzenie punktu polaczenia.

6. mklink /H hardTest.exe C:\test.exe - utworzenie dowiazania twardego do wczesniej utworzonego pliku test.exe. Plik hardTest.exe jest rozpoznawalny przez system operacyjny jako plik.

Przyklad 6
Rysunek 7. Utworzenie symbolicznego dowiazania twardego.

7. Na ponizszym zrzucie znajduja sie wyniki dzialania powyzszych polecen:

Wyniki dzialania polecenia MKLINK
Rysunek 8. Wynik wykorzystania narzedzia mklink.

Usuwanie dowiazan symbolicznych wykonuje sie przy wykorzystaniu polecen:
- del - dla dowiazan dla plików
- rd - dla dowiazan dla folderów

Usuniecie pliku nie powoduje usuniecia dowiazan twardych, miekkich oraz punktów polaczenia.

Podsumowanie

W systemach typu Unix i Linux symlink jest wykorzystywany juz od dluzszego czasu. W systemach Windows Server 2008 i Windows Vista, oprócz poprzednich narzedzi tj. linkd, czy junction, narzedzie mklink umozliwia tworzenie dowiazan symbolicznych wykorzystujac przy tym mozliwosci systemu plików NTFS. Uprawnienia do tworzenia dowiazan maja tylko czlonkowie grupy administratorów, chyba, ze polityka wskazuje inaczej (secpol.msc). Punkty polaczenia znane z poprzednich systemów mogly byc tworzone jedynie dla folderów i wolumenów, symlinki dodatkowo mozna tworzyc dla plików, czy UNC. Korzysci z uzywania mklink sa oczywiste, narzedzie to jest pomocne, w sytuacji, gdy mamy rozproszona strukture katalogowa i chcemy miec mozliwosc zarzadzania nia z jednego miejsca, lub w sytuacji, gdy sciezka do czesto wykorzystywanego pliku/folderu jest zbyt skomplikowana, aby wpisywac ja za kazdym razem, kiedy istnieje potrzeba dostania sie w wybrane miejsce. Punkty dowiazania sa wykorzystywane w systemach Windows Server 2008 i Windows Vista jedynie w celu zapewnienia kompatybilnosci ze starszymi wersjami systemów operacyjnych dla profili uzytkownika (np. Documents and Settings), aby wskazywaly na nowe foldery systemowe w katalogu Users.

Autor: Paula Januszkiewicz