我使用C#里面WMI获得“登录”当前的用户列表给机器的会议期间访问的共享:WMI报告用户注销后登录,如果
ManagementScope ms = new ManagementScope(ManagementPath.DefaultPath);
var q = new SelectQuery("Win32_LoggedOnUser");
using (var query = new ManagementObjectSearcher(ms, q)) {
using (var results = query.Get()) {
foreach (var r in results) {
using (var o = new ManagementObject(r["Dependent"].ToString())) {
var logonType = o["LogonType"];
if (logonType == "2") {
// Interactive user is logged in, retrieve the name
using (var userObj = new ManagementObject(r["Antecedent"].ToString())) {
name = userObj["Name"].ToString();
}
}
...
这个伟大的工程,但似乎在某些情况下,即使在用户注销后,WMI仍会将其报告为已登录。一种特殊情况是该用户在会话期间访问网络共享。
反正有这个吗?也许是测试会话以查看它是作为共享创建还是活动的方式?
任何提示将不胜感激。