java - 使用 Java,如何获取 Windows 机器上所有本地用户的列表

标签 java windows security operating-system

如何使用 java 列出在 Windows 机器 (Win2000+) 上配置的所有本地用户。
如果可能的话,我更愿意使用任何 java 2 com 桥或任何其他第三方库来执行此操作。
最好使用 Java 的一些 native 方法。

最佳答案

使用 Java-COM 桥,例如 Jacob .然后选择合适的 COM 库,例如COM API for WMI列出本地用户或任何其他 Windows 管理信息。

Win32_SystemUsers关联 WMI 类关联计算机系统和该系统上的用户帐户。

Win32_Account抽象 WMI 类包含有关运行 Windows 的计算机系统已知的用户帐户和组帐户的信息。 Windows NT 域识别的用户名或组名是此类的后代(或成员)。

工作示例(jacob 1.17-M2、javaSE-1.6):

import java.util.Enumeration;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.ComThread;
import com.jacob.com.EnumVariant;
import com.jacob.com.Variant;

public class ComTst {
public static void main(String[] args) {
    ComThread.InitMTA();
    try {
        ActiveXComponent wmi = new ActiveXComponent("winmgmts:\\\\.");
        Variant instances = wmi.invoke("InstancesOf", "Win32_SystemUsers");
        Enumeration<Variant> en = new EnumVariant(instances.getDispatch());
        while (en.hasMoreElements())
        {
            ActiveXComponent bb = new ActiveXComponent(en.nextElement().getDispatch());
            System.out.println(bb.getPropertyAsString("PartComponent"));
        }
    } finally {
        ComThread.Release();
    }
}
}

关于java - 使用 Java,如何获取 Windows 机器上所有本地用户的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/333812/

相关文章:

java - 如何通过 SFTP 从服务器检索文件?

java - 如何停止已经执行的TimerTask?

java - 更新语句只运行一次。?

ruby-on-rails - 无法在 Windows 上安装 ruby​​-debug gem

javascript - 在 PHP 中转义 json 数据而不使用 JS 注释 hack 的正确方法

xss - 什么是跨站脚本包含 (XSSI)?

java - 有一个处理程序作为两个非并行的处理程序 'try'

java - 使用 Xmx 增加 JVM 堆内存不起作用

python - 不确定如何修复此 Cmd 命令错误?

windows - pthreads 与 MinGW 的静态链接