【问题标题】:Determine if active directory user started application确定活动目录用户是否启动了应用程序
【发布时间】:2021-04-15 21:10:23
【问题描述】:

我想知道是否以及哪个 Active Directory 用户启动了我的 windows java 应用程序。

出于安全原因,我不能使用System.getProperty("user.name")/System.getenv("USERDOMAIN")

Advapi32Util.getUserName()NTSystem.getName() 似乎只返回本地用户,而不是启动应用程序的活动目录用户。

提前致谢

【问题讨论】:

    标签: java windows dns


    【解决方案1】:

    您可以执行 cmd 命令并获取输出(如果您的安全允许)。

    public static String executeCmdCommand(String command) 
    {
        String result = null;
        try (var inputStream = Runtime.getRuntime().exec(command).getInputStream();
                var s = new Scanner(inputStream)) 
        {
            result = s.hasNext() ? s.next() : null;
        } 
        catch (IOException e) 
        {
            e.printStackTrace();
        }
        return Objects.requireNonNullElse(result, "").trim();
    }
    

    然后,executeCmdCommand("whoami") 将返回“域/用户名”

    【讨论】:

    • 但是那不是只返回当前登录的用户吗?但不是启动程序的活动目录用户?
    猜你喜欢
    • 2012-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多