c#查看当前电脑所有登录过的用户
时间: 2024-03-13 09:46:04 浏览: 173
亲测可用,vbs获取电脑当前登录的用户名.vbs
您可以使用以下代码来获取当前电脑所有登录过的用户列表:
```csharp
using System;
using System.Collections.Generic;
using System.DirectoryServices.AccountManagement;
// 获取当前电脑所有用户列表
List<string> userList = new List<string>();
PrincipalContext context = new PrincipalContext(ContextType.Domain);
UserPrincipal userPrincipal = new UserPrincipal(context);
userPrincipal.Enabled = true;
PrincipalSearcher searcher = new PrincipalSearcher(userPrincipal);
foreach (var result in searcher.FindAll())
{
DirectoryEntry de = result.GetUnderlyingObject() as DirectoryEntry;
if (de != null)
{
string userName = de.Properties["samAccountName"].Value.ToString();
userList.Add(userName);
}
}
// 输出用户列表
foreach (string user in userList)
{
Console.WriteLine(user);
}
```
这段代码使用了 `System.DirectoryServices.AccountManagement` 命名空间中的 `PrincipalContext` 和 `UserPrincipal` 类来获取当前电脑所有的用户列表,并将其存储在一个 `List<string>` 中。然后,使用 foreach 循环输出用户列表。
请注意,此代码仅适用于 Windows 身份验证,并且可能需要在管理员权限下运行。
阅读全文