gpt4 book ai didi

java - 我可以找出登录到 Windows 桌面的远程人员的用户 ID 吗?

转载 作者:行者123 更新时间:2023-12-01 13:37:21 26 4
gpt4 key购买 nike

我正在我们的一台 Windows 机器上运行 Java 桌面应用程序。

要在我们的应用程序中进行任何手动更改,我们的 之一支持人员使用 从他的机器远程登录mstsc . (假设“蒂姆”)

这是一个问题:对于远程连接,我们使用“ MysysUser ”和密码进行连接。

现在,需要登录谁进行更改。有没有办法找出不是“MysysUser”的远程用户是谁?它是“Tim”。

在我的 Java 代码中,我想找出名称 蒂姆 .

感谢您的时间和帮助。

最佳答案

你可以使用这个类来获取登录Tim机器的用户的名字,就像这个例子,这个特性使用了windows的原生特性。

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.concurrent.TimeUnit;

public class UserName {
public static void main(String[] args) throws Exception{
UserName user = new UserName();
System.out.println(user.getUserLoggedFromIP("localhost"));
System.out.println(user.getUserLoggedFromIP("IP_MACHINE_OF_TIM"));
}

public String getUserLoggedFromIP(String ip) throws Exception {
Process p = Runtime.getRuntime().exec("query user /server:" + ip);
p.waitFor(200, TimeUnit.MILLISECONDS);

BufferedReader reader = new BufferedReader(new InputStreamReader(
p.getInputStream()));

String userActive = reader.lines().filter(x -> x.toUpperCase().contains("ACTIVE"))
.findFirst()
.orElse(null);

if(userActive != null){
return userActive.trim().split(" ")[0];
}else{
return "";
}
}
}

关于java - 我可以找出登录到 Windows 桌面的远程人员的用户 ID 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61906106/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com