Jak mogę utworzyć dowiązania symboliczne w systemie Windows 8.1 bez wiersza polecenia administratora?

8

Mam nadzieję, że ktoś może mnie poprawić, gdy popełniam błąd podczas próby utworzenia dowiązania symbolicznego w systemie Windows 8.1 bez konieczności uruchamiania cmd.exe jako administratora.

Ilekroć próbuję utworzyć dowiązanie symboliczne ze zwykłego wiersza polecenia, otrzymuję zwykłą odpowiedź uprawnień ...

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

... i działa z poziomu wiersza polecenia administratora (zgodnie z oczekiwaniami) ...

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

Jednak nie wygląda na to, że jakakolwiek zwykła poprawka działa w systemie Windows 8.1 (przynajmniej poprawki, które mogłam znaleźć).

Próbowałem postępować zgodnie z odpowiedzią na pytanie Jak utworzyć łącze w systemie Windows 7 Home Premium jako zwykły użytkownik? , ale wydaje się, że nie ma żadnego efektu.

Mam również UAC ustawiony na najniższym poziomie.

Czy coś jeszcze mi brakuje?

Karl Nicoll
źródło
2
To wina UAC. Zobacz odpowiedź „Paul Betts” tutaj: stackoverflow.com/questions/15320550/...
StackzOfZtuff
@StackzOfZtuff - Cóż, to denerwujące. Dzięki za link, wygląda na to, że będę musiał wybierać między UAC a bez aplikacji Metro. Nie sądzę, żebym kiedykolwiek zrozumiał, co Microsoft próbował zrobić z UAC.
Karl Nicoll,

Odpowiedzi:

9

Brak uprawnień w tokenie „filtrowanym”

Wyłącz UAC. Lub z włączonym UAC: po włączeniu SECreateSymbolicLinkPrivilegespróbuj z kontem innym niż administrator .

Wyjaśnienie
Jest złapać 17. Z tego, jak czytam dokumentację MS.

Jeśli masz na czarnej liście dobrze znaną grupę administracyjną na swoim koncie użytkownika, tworzony jest drugi, nieużywany token.

Odpowiedni SeCreateSymbolicLinkPrivilegejest filtrowany, gdy nie podniesiony token jest generowany z podniesionego tokena.

Z MSDN: izolacja uprawnień interfejsu użytkownika (UIPI) :

System Windows utworzy dla użytkownika dwa tokeny dostępu, jeśli spełniony jest jeden z poniższych warunków: Konto użytkownika zawiera jeden z następujących identyfikatorów RID.
DOMAIN_GROUP_RID_ADMINS
[...]
Jakie uprawnienia zawierają filtrowany token, zależą od tego, czy oryginalny token zawierał którykolwiek z wymienionych powyżej ograniczonych RIDS. Jeśli którykolwiek z ograniczonych identyfikatorów RID znajduje się w tokenie, wszystkie uprawnienia zostaną usunięte, z wyjątkiem:
SeChangeNotifyPrivilege
SeShutdownPrivilege
SeUndockPrivilege
SeReserveProcessorPrivilege
SeTimeZonePrivilege

Rozwiązaniem jest więc całkowite wyłączenie generowania drugiego tokena. Albo usuwając wszystkie wymienione grupy z konta, albo całkowicie wyłączając UAC.

(Oświadczenie: Paul Betts wykonał pracę. Właśnie dodałem trochę szczegółów. Zobacz jego odpowiedź tutaj: /programming/15320550/secreatesymboliclinkprivilege-ignored-on-windows-8 )

StackzOfZtuff
źródło