用户可以使用 程序 登录到远程计算机上,c# – 如何使用远程计算机上的状态登录用户...

您可以对

LogonType属性使用Win32_logonSession WMI类筛选,值为2(交互式)

试试这个样本

using System;

using System.Collections.Generic;

using System.Management;

using System.Text;

namespace GetWMI_Info

{

class Program

{

static void Main(string[] args)

{

try

{

string ComputerName = "remote-machine";

ManagementScope Scope;

if (!ComputerName.Equals("localhost",StringComparison.OrdinalIgnoreCase))

{

ConnectionOptions Conn = new ConnectionOptions();

Conn.Username = "username";

Conn.Password = "password";

Conn.Authority = "ntlmdomain:DOMAIN";

Scope = new ManagementScope(String.Format("\\\\{0}\\root\\CIMV2",ComputerName),Conn);

}

else

Scope = new ManagementScope(String.Format("\\\\{0}\\root\\CIMV2",null);

Scope.Connect();

ObjectQuery Query = new ObjectQuery("SELECT logonId FROM Win32_logonSession Where logonType=2");

ManagementObjectSearcher Searcher = new ManagementObjectSearcher(Scope,Query);

foreach (ManagementObject WmiObject in Searcher.Get())

{

Console.WriteLine("{0,-35} {1,-40}","logonId",WmiObject["logonId"]);// String

ObjectQuery LQuery = new ObjectQuery("Associators of {Win32_logonSession.logonId=" + WmiObject["logonId"] + "} Where AssocClass=Win32_LoggedOnUser Role=Dependent");

ManagementObjectSearcher LSearcher = new ManagementObjectSearcher(Scope,LQuery);

foreach (ManagementObject LWmiObject in LSearcher.Get())

{

Console.WriteLine("{0,"Name",LWmiObject["Name"]);

}

}

}

catch (Exception e)

{

Console.WriteLine(String.Format("Exception {0} Trace {1}",e.Message,e.StackTrace));

}

Console.WriteLine("Press Enter to exit");

Console.Read();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值