使用WMI:如何获取运行程序的用户帐户的名称?

bac*_*h17 4 c# wmi

我需要将对我的应用程序的访问权限仅限于一个特定的用户帐户.我在WMI下找到了用于查找用户帐户的课程,但我不知道如何识别哪个人正在运行我的应用程序.

在此先感谢您的anserws.

adr*_*nks 6

获取当前用户名比使用WMI更简单.

WindowsIdentity.GetCurrent().名称将为您提供当前Windows用户的名称.

Environment.Username将为您提供当前登录用户的名称.

这两者之间的区别在于WindowsIdentity.GetCurrent().Name它还包括域名和用户名(即MYDOMAIN\adrian代替adrian).如果您需要域名Environment,可以使用Environment.UserDomainName.

编辑

如果你真的想用WMI做,你可以这样做:

ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT UserName FROM Win32_ComputerSystem");
ManagementObjectCollection collection = searcher.Get();
string username = (string) collection.Cast<ManagementBaseObject>().First()["UserName"];
Run Code Online (Sandbox Code Playgroud)

不幸的是,没有索引器属性,ManagementObjectCollection所以你必须枚举它以获得第一个(也是唯一的)结果.