Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou tentando pegar o nome do usuário logado na máquina.
Fiz dois usuários:
RAFAEL ( Administrador ) e TESTE ( Comum )
Ao executar aplicação no usuário teste como administrador ele pega o usuário que executou e não o TESTE ( logado ).
Ex:
Imports System.Security
Imports System.Security.Principal.WindowsIdentity
usuariologado = Environment.UserName
Dim pastaTempLocal As String = usuariologado + "\AppData\Local\Temp"
No caso de estar logado como teste seria:
TESTE\AppData\Local\Temp
Porem como eu executo como administrador a aplicação ele pega quem executou no caso:
RAFAEL\AppData\Local\Temp
Tem como pegar o nome do usuário logado na máquina mesmo que eu execute como administrador a aplicação??
Nesse caso sim, pois algumas pastas são bloqueadas pelo Windows como no Windows 7 que a pasta C:\Windows\Temp é restrita para acessá-la sem usar adm
Então, como o próprio nome já diz, executar como administrador, isso significa que na verdade o usuário que executa não é o logado e sim o adm.
Bom pensando bem por um lado tem uma certa razão de não conseguir executar como ADM puxando o usuário diferente por motivos de segurança.
Tive que contornar essa situação criando um TextBox para inserir o usuário manualmente que estiver logado na máquina e resolveu meu problema
Não, quando você utiliza Environment ele vai pegar só o ambiente da aplicação, ou seja, tudo que está no ambiente dela, inclusive o usuário que a executou, não é necessário executar como administrador os programas para que eles funcionem.