Espero que alguém possa me corrigir onde estou errando ao tentar criar um link simbólico no Windows 8.1 sem precisar executar o cmd.exe como administrador.
Sempre que tento criar um link simbólico a partir de um prompt de comando regular, recebo a resposta de permissões usual ...
C:\Users\MyUser>mklink symlink.txt mytextfile.txt
You do not have sufficient privilege to perform this operation.
... e funciona em um prompt de comando do administrador (conforme o esperado) ...
C:\Users\MyUser>mklink symlink.txt mytextfile.txt
symbolic link created for symlink.txt <<===>> mytextfile.txt
No entanto, não parece que nenhuma das correções usuais esteja funcionando no Windows 8.1 (pelo menos, as correções que eu pude encontrar).
Eu tentei seguir a resposta para Como criar um link no Windows 7 home premium como um usuário comum? , mas parece não ter efeito.
Eu também tenho o UAC definido no seu nível mais baixo.
Falta mais alguma coisa?
windows
command-line
windows-8.1
symbolic-link
Karl Nicoll
fonte
fonte
Respostas:
Privilégio ausente no token "filtrado"
Desative o UAC. Ou com o UAC ativado: após ativar,
SECreateSymbolicLinkPrivilege
tente com uma conta que não seja de administrador .Explicação
É pegadinha 17. De como eu li a documentação do MS.
Se você tiver um grupo de administradores conhecido na lista negra na sua conta de usuário, um segundo token não elevado será criado.
O relevante
SeCreateSymbolicLinkPrivilege
é filtrado quando o token não elevado é gerado a partir do token elevado.No MSDN: Isolamento de privilégios da interface do usuário (UIPI) :
Portanto, a solução é desativar completamente a segunda geração de token. Removendo todos os grupos mencionados da sua conta ou desativando completamente o UAC.
(Isenção de responsabilidade: Paul Betts fez o trabalho. Acabei de adicionar alguns detalhes. Veja sua resposta aqui: /programming/15320550/secreatesymboliclinkprivilege-ignored-on-windows-8 )
fonte