要获取当前登录用户的用户名,我使用以下代码。它工作得很好。
但是当我在RDP机器中运行相同的代码(使用mstsc远程登录到另一台机器)时,它将返回为空。
我不想使用环境变量的用户名,因为当我使用 XYZ 用户执行RUNAS管理时,它会提供 XYZ 用户名。
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT UserName FROM Win32_ComputerSystem");
ManagementObjectCollection collection = searcher.Get();
string username = (string)collection.Cast<ManagementBaseObject>().First()["UserName"];