Zugriff wird verweigert, wenn ich unter Windows 7 mklink

88085
prosseek

Mein Heimatverzeichnis ist c: \ Users \ phi als Benutzer-phi und ich habe ein Verzeichnis unter c: \ Users \ abc erstellt. Ich muss einen symbolischen Link von c: \ Users \ phi \ hello zu c: \ Users \ abc \ hello haben.

Ich führe den folgenden Befehl aus

mklink c: \ Benutzer \ abc \ hallo c: \ Benutzer \ phi \ hallo 

Aber ich bekomme den Zugriff verweigert . Benutzer-Phi ist Administrator, daher habe ich kein Problem beim Schreiben von Dateien in c: \ Users \ abc.

Warum ist das? Wie mklinke?

30

10 Antworten auf die Frage

24
prosseek

Ich habe eine Antwort von dieser Seite gefunden . Kurz gesagt, ich hätte cmd.exe als Administrator ausführen sollen.

Als Referenz kann dies auch eine Ursache sein: http://superuser.com/questions/264181/using-mklink-h-results-in-access-isdenied Wouter vor 7 Jahren 4
Wenn Sie beim Verknüpfen von Ordnern versuchen, den Parameter / H zu verwenden, wird Zugriff verweigert. Sie brauchen nur / D für Ordner. Dies ist, was in Wouters Link enthalten ist. +1 an Wouter, danke Kumpel! :) CausingUnderflowsEverywhere vor 7 Jahren 5
22
rpattabi

Important points:

  1. You need to run as admin if UAC is on. (or at least security policy to allow creation of links).
  2. The /D switch needs to be used if the link is for directory.
  3. First parameter is a link, second parameter is the original folder.
  4. Link should not exist already.

Usage:

mklink /D c:\users\me\new_link\ c:\users\me\original_folder\ 
@LawrenceDol Ist es richtig zu sagen, dass Sie für Nicht-Admin-Benutzer die spezielle Berechtigung (`SeCreateSymbolicLinkPrivilege`) benötigen, während Sie für Admin-Benutzer mit run-as-Admin erhöht werden müssen. Aber ist es auch möglich, `SeCreateSymbolicLinkPrivilege` für einen Admin-Benutzer festzulegen und zu vermeiden, dass Sie mit Run-as-Admin eine Erhöhung vornehmen müssen? Diese Frage: http://stackoverflow.com/questions/29956470/isit-mogliche-zum-addieren-nach-der-standard-Benutzer-Token-erstellen-für-an-Adresse?noredirect=1&lq = 1 gibt an, dass die Benutzerkontensteuerung deaktiviert werden muss, wenn Admin-Benutzer nicht erhöht werden müssen. CMCDragonkai vor 7 Jahren 0
@CMCDragonkai: Ich denke nicht, dass eine Erhöhung notwendig ist, aber ich habe das nicht speziell getestet. Mir scheint, dass ich in einem normalen Befehlsfenster zuvor Links mit einem Administratorkonto erstellt habe und die Benutzerkontensteuerung immer belasse. Lawrence Dol vor 7 Jahren 0
21
rburte

Beachten Sie, dass derselbe Fehler angezeigt wird, wenn Sie versuchen, Junctions auf zugeordneten Laufwerken zu erstellen . Ich habe mir die Haare ausgezogen, bis ich auf die Beispiele auf dieser Seite von MSDN Hard Links und Junctions gestoßen bin .

Kurze Antwort: Sie können mklink nur auf lokalen Volumes verwenden.

Dieser Link ist nicht sehr nützlich. (Wortspiel unbeabsichtigt) rpattabi vor 11 Jahren 0
Diese Antwort scheint für die Frage nicht relevant zu sein. kreemoweet vor 11 Jahren 0
@kreemoweet Die Antwort ist relevant, denn wenn Sie einen Fehler "Zugriff wird verweigert, wenn ich unter Windows 7 mklinke" erhalten, kann der Grund dafür sein, dass Sie den Befehl nicht auf einem lokalen Volume verwenden. Reg Edit vor 7 Jahren 2
13
Lawrence Dol

In Windows 7 (und höher) benötigen Sie ein besonderes Sicherheitsrecht, um Links und Junctions zu erstellen. Als Administrator können Sie diese Berechtigung den Benutzern erteilen, die diese secpol.mscEinstellung verwenden Local Policies\User Rights Assignment\Create symbolic links.

Wenn der Benutzer zu diesem Zeitpunkt angemeldet ist, muss er sich ab- und wieder anmelden, um Verknüpfungen erstellen zu können.

Beachten Sie die Vorsicht, dass Links Sicherheitslücken in einigen Apps aufdecken können. Ich habe nicht untersucht, welche Schwächen diese haben könnten.

Dies ist die einzige in Frage kommende Antwort auf dieses Problem, denn jede Antwort kommt nicht auf das Wesentliche an. Hören Sie auf, als Administrator zu arbeiten! Dies ist eine sehr XP-artige Einstellung, die das mangelnde Bewusstsein für Sicherheitsrisiken zeigt, die jedes Windows zu sehr hält. cepharum vor 7 Jahren 0
9
Sascha

Wenn Sie häufig Linux verwenden, denken Sie daran, dass die Parameter unter Windows ausgetauscht werden.

Wenn Sie die falsche Reihenfolge verwenden, erhalten Sie auch einen "Zugriff verweigert". Weil Sie versuchen, einen symbolischen Link zu erstellen, bei dem das Original bereits vorhanden ist.

Windows: mklink /D link original

Linux: ln -s original link

4
Peter Joles

Ich bekam das, weil ich versehentlich mklink /Dgegen eine Akte gerannt bin . Der Link wurde nicht im Explorer angezeigt, jedoch im Windows Explorer. Mit der Eingabeaufforderung habe ich die ursprüngliche ungültige Verzeichnisverknüpfung gelöscht und sie ohne die /DOption neu erstellt.

Ich habe übrigens die Fehlermeldung "Zugriff wurde verweigert" erhalten, obwohl ich cmd.exe als Administrator ausgeführt habe.

1
Martin Wildam

Apart from running mklink as Administrator you also should make sure that you have enough permissions to the destination folder you are linking to.

1
Simons0n

Wenn du läufst:

mklink / j C: \ path_to_link C: \ destination

es sollte funktionieren. In meinem Fall produzierten Powershell und cmd dieselbe Ausgabe. Bei Powershell müssen Sie den Befehl nur mit starten

cmd / c mklink ...

Yes, but **beware**: junctions are far more deadly than hard directory links. Deleting a link from command line or explorer simply removes the link, but deleting a junction from explorer removes everything in the directory and then deletes the junction - OOPS. Use `mklink /D src tgt` instead. Lawrence Dol vor 11 Jahren 3
0
David d C e Freitas

Das hört sich vielleicht komisch an, aber überprüfen Sie, ob die Datei oder der Ordner noch nicht vorhanden ist, die Sie erstellen möchten. Manchmal ist es leicht, in der Eingabeaufforderung von cmd zu übersehen.

0
Zequez

Für Verzeichnisse müssen Sie Folgendes tun:

mklink /D c:\Users\abc\hello c:\Users\phi\hello