用户可以使用 程序 登录到远程计算机上,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", ComputerName), 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,-35} {1,-40}", "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();

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值