【发布时间】:2017-02-01 07:25:20
【问题描述】:
如何获取当前登录的Windows用户?我的问题:我正在运行一个具有管理员权限的进程以及所有这些:
Console.WriteLine(System.Security.Principal.WindowsIdentity.GetCurrent().Name);
Console.WriteLine(Environment.UserName);
Console.WriteLine(System.Security.Principal.WindowsIdentity.GetCurrent().User); //GUID
Console.WriteLine(Environment.GetEnvironmentVariable("USERNAME"));
...尝试将运行 进程的当前用户还给我,在我的情况下为 Administrator - 但我想拥有 当前用户谁登录了。
有什么想法或建议吗?
【问题讨论】:
-
@UweKeim 不知道这是怎么重复的
-
“我正在以管理员权限运行一个进程” - 你的意思是该进程正在运行提升?这是什么操作系统,因为当我添加 app.manifest 并为我的测试应用程序包含
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />时,它运行提升但仍正确显示 my name 而不是“管理员" 或类似的 -
@MickyD - 那是因为您拥有管理员权限。如果您以非管理员身份运行,那么提升还会提示您输入备用用户名和密码。你可以看到我在答案底部链接的 Raymond Chen 文章中讨论的那种事情。
-
@Damien_The_Unbeliever 啊谢谢 Damien :)
标签: c# windows process active-directory