Wie kann ich in Windows 8.1 symbolische Links ohne eine Administrator-Eingabeaufforderung erstellen?

8

Ich hoffe, dass mich jemand korrigieren kann, wenn ich versuche, einen symbolischen Link in Windows 8.1 zu erstellen, ohne cmd.exe als Administrator ausführen zu müssen.

Immer wenn ich versuche, einen Symlink über eine normale Eingabeaufforderung zu erstellen, erhalte ich die übliche Berechtigungsantwort ...

C:\Users\MyUser>mklink symlink.txt mytextfile.txt
You do not have sufficient privilege to perform this operation.

... und es funktioniert an einer Admin-Eingabeaufforderung (wie erwartet) ...

C:\Users\MyUser>mklink symlink.txt mytextfile.txt
symbolic link created for symlink.txt <<===>> mytextfile.txt

Es scheint jedoch nicht, dass eine der üblichen Korrekturen in Windows 8.1 funktioniert (zumindest die Korrekturen, die ich finden konnte).

Ich habe versucht, der Antwort auf Wie erstelle ich als normaler Benutzer einen Link in Windows 7 Home Premium? Zu folgen. , aber es scheint keine Wirkung zu haben.

Ich habe auch die Benutzerkontensteuerung auf die niedrigste Stufe eingestellt.

Fehlt mir noch etwas?

Karl Nicoll
quelle
2
Es ist UACs Schuld. Siehe Antwort von "Paul Betts" hier: stackoverflow.com/questions/15320550/…
StackzOfZtuff
@StackzOfZtuff - Nun, das ist nervig. Vielen Dank für den Link, anscheinend muss ich mich zwischen UAC und keinen Metro-Apps entscheiden. Ich glaube nicht, dass ich jemals verstehen werde, was Microsoft mit UAC versucht hat.
Karl Nicoll

Antworten:

9

Berechtigung fehlt im "gefilterten" Token

Deaktivieren Sie entweder die Benutzerkontensteuerung. Oder mit aktivierter Benutzerkontensteuerung : SECreateSymbolicLinkPrivilegeVersuchen Sie es nach dem Aktivieren mit einem Nicht-Administratorkonto .

Erklärung
Es ist Haken 17. Wie ich die MS-Dokumentation gelesen habe.

Wenn Sie eine bekannte Administratorgruppe auf der schwarzen Liste in Ihrem Benutzerkonto haben, wird ein zweites, nicht erhöhtes Token erstellt.

Das relevante SeCreateSymbolicLinkPrivilegewird herausgefiltert, wenn das nicht erhöhte Token aus dem erhöhten Token generiert wird.

Von MSDN: UIPI (User Interface Privilege Isolation) :

Windows erstellt zwei Zugriffstoken für den Benutzer, wenn eine der folgenden Bedingungen erfüllt ist: Das Benutzerkonto enthält eine der folgenden RIDs.
DOMAIN_GROUP_RID_ADMINS
[...]
Welche Berechtigungen das gefilterte Token enthält, hängt davon ab, ob das ursprüngliche Token eines der oben aufgeführten eingeschränkten RIDS enthielt. Wenn sich eine der eingeschränkten RIDs im Token befand, werden alle Berechtigungen entfernt, außer:
SeChangeNotifyPrivilege
SeShutdownPrivilege
SeUndockPrivilege
SeReserveProcessorPrivilege
SeTimeZonePrivilege

Die Lösung besteht also darin, die zweite Token-Generation vollständig zu deaktivieren. Entweder indem Sie alle genannten Gruppen aus Ihrem Konto entfernen oder die Benutzerkontensteuerung vollständig deaktivieren.

(Haftungsausschluss: Paul Betts hat die Arbeit erledigt. Ich habe gerade einige Details hinzugefügt. Siehe seine Antwort hier: /programming/15320550/secreatesymboliclinkprivilege-ignored-on-windows-8 )

StackzOfZtuff
quelle