Come posso creare collegamenti simbolici in Windows 8.1 senza un prompt dei comandi dell'amministratore?


8

Spero che qualcuno possa correggermi dove sbaglio quando provo a creare un collegamento simbolico in Windows 8.1 senza dover eseguire cmd.exe come amministratore.

Ogni volta che provo a creare un collegamento simbolico da un normale prompt dei comandi, ottengo la solita risposta delle autorizzazioni ...

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

... e funziona dal prompt dei comandi di amministrazione (come previsto) ...

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

Tuttavia, non sembra che nessuna delle solite correzioni funzioni in Windows 8.1 (almeno, le correzioni che ho potuto trovare).

Ho provato a seguire la risposta a Come posso creare un collegamento in Windows 7 Home Premium come utente normale? , ma sembra non avere alcun effetto.

Ho anche UAC impostato al suo livello più basso.

C'è qualcos'altro che mi manca?


2
È colpa dell'UAC. Si veda la risposta da "Paul Betts" qui: stackoverflow.com/questions/15320550/...
StackzOfZtuff

@StackzOfZtuff - Beh, è ​​fastidioso. Grazie per il link, sembra che dovrò scegliere tra UAC e nessuna app Metro. Non credo che capirò mai cosa Microsoft stava cercando di fare con UAC.
Karl Nicoll,

Risposte:


9

Privilegio mancante nel token "filtrato"

O disabilitare UAC. O con UAC abilitato: dopo aver abilitato SECreateSymbolicLinkPrivilegeprovare con un account non amministratore .

Spiegazione
È un problema 17. Da come ho letto la documentazione MS.

Se nel tuo account utente è presente un noto gruppo di amministratori nella lista nera, viene creato un secondo token non elevato.

Il pertinente SeCreateSymbolicLinkPrivilegeviene filtrato quando il token non elevato viene generato dal token elevato.

Da MSDN: User Interface Privilege Isolation (UIPI) :

Windows creerà due token di accesso per l'utente se si verifica una delle seguenti condizioni: L'account dell'utente contiene uno dei seguenti RID.
DOMAIN_GROUP_RID_ADMINS
[...]
I privilegi contenuti nel token filtrato si basano sul fatto che il token originale contenesse uno dei RIDS limitati sopra elencati. Se uno dei RID limitati era nel token, tutti i privilegi vengono rimossi tranne:
SeChangeNotifyPrivilege
SeShutdownPrivilege
SeUndockPrivilege
SeReserveProcessorPrivilege
SeTimeZonePrivilege

Quindi la soluzione è disabilitare del tutto la seconda generazione di token. O rimuovendo tutti i gruppi menzionati dal tuo account o disabilitando completamente UAC.

(Dichiarazione di non responsabilità: Paul Betts ha svolto il lavoro. Ho appena aggiunto alcuni dettagli. Vedere la sua risposta qui: /programming/15320550/secreatesymboliclinkprivilege-ignored-on-windows-8 )

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.