用户登录到远程计算机 [英] User logged into remote machine

查看:76
本文介绍了用户登录到远程计算机的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有一种方法可以确定使用WMI和C#登录到远程计算机的所有用户

Is there a way to determine what all users are logged into remote machine, using WMI and C#

推荐答案

我能够弄清楚,尽管不确定这是否是最好的方法

After little research I was able to figure it out, although not sure if this is the best way

public void GetCompDet(string ComputerName)
{
    CurrentSystem = ComputerName;
    ConnectionOptions options = new ConnectionOptions();

    ManagementScope moScope = new ManagementScope(@"\\" + ComputerName + @"\root\cimv2");
    try
    {
        moScope.Connect();
    }
    catch
    {
        return;
    }
    ObjectQuery query = new ObjectQuery("select * from Win32_Process where name='explorer.exe'");
    ManagementObjectSearcher searcher = new ManagementObjectSearcher(moScope, query);
    ManagementObjectCollection queryCollection = searcher.Get();
    foreach (ManagementObject m in queryCollection)
    {
        ManagementOperationObserver mo = new ManagementOperationObserver();
        mo.ObjectReady += new ObjectReadyEventHandler(mo_ObjectReady);
        m.InvokeMethod(mo, "GetOwner", null);
    }
}

void mo_ObjectReady(object sender, ObjectReadyEventArgs e)
{
    ManagementObject m = sender as ManagementObject;
    LoggedinUser.Enqueue(CurrentSystem + " - >" + e.NewObject.Properties["user"].Value.ToString());
    Console.WriteLine(CurrentSystem + " - >" + e.NewObject.Properties["user"].Value.ToString());
}

这篇关于用户登录到远程计算机的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆