【发布时间】:2017-08-28 20:30:12
【问题描述】:
我想在 java 中创建一个应用程序来监控记录的用户活动(创建、删除、更新文件夹/文件)。 问题是我没有找到如何获取登录用户的操作系统(java应用程序在windows服务器上运行,用户在他们的机器上有windows,我想知道是否有办法获取windows版本登录的用户)。
BR, 米海
【问题讨论】:
标签: java windows windows-10 windows-server-2012
我想在 java 中创建一个应用程序来监控记录的用户活动(创建、删除、更新文件夹/文件)。 问题是我没有找到如何获取登录用户的操作系统(java应用程序在windows服务器上运行,用户在他们的机器上有windows,我想知道是否有办法获取windows版本登录的用户)。
BR, 米海
【问题讨论】:
标签: java windows windows-10 windows-server-2012
System.getProperty("os.version")
如果它是一个 Web 应用程序,您可以使用用户代理标头。它可以很容易地改变,但值得一试。检查https://stackoverflow.com/a/1328393/5684110。
【讨论】:
您将使用 JNI 并调用本机(特定于 Windows 的 DLL)方法来获取信息。您必须自己创建这个 DLL(可能在 C/C++ 中)
【讨论】:
您要求的是特定于 Windows 的功能。我怀疑 Java 会支持这一点,因此您将需要一个本机模块(用 C/C++ 或其他东西编写)来读取该信息并通过 JNI 或本地套接字连接将其传递到您的 Java 应用程序中。也许您可以从 Active Directory 轮询这些数据。
另一个想法是,您可以在启动时通过客户端 PC 上运行的另一个 Java 应用程序获取信息。这样你就可以监控文件系统的变化和一些基本的系统属性,比如操作系统名称和版本(见 Mustafa 的回答)。该应用程序将被静默下载到工作站并通过 Active Directory 自动运行,通过套接字、Web 或 Web 服务将数据发送到您的服务器应用程序。
希望对你有所帮助。
【讨论】: