1

我使用 Jinterop 库来访问远程 WMI。

JISystem.setAutoRegisteration(true);
JISession session = JISession.createSession(System.getenv("USERDOMAIN"), login, password);
session.useSessionSecurity(true);
final JIComServer server = new JIComServer(JIProgId.valueOf(WBEM_PROGID), HOST, session);

我想使用模拟来使用当前用户和密码访问远程机器。但是当我使用空的登录名和密码时,我总是得到异常

jcifs.smb.SmbAuthException: Logon failure: unknown user name or bad password.
    at jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:546)

这可以在 Jinterop 中使用模拟吗?

4

1 回答 1

0

我不是 100% 确定,但我已经使用 j-interop 有一段时间了,我从未见过或读过这个功能,所以我认为这是不可能的。在我看来,您始终必须指定凭据。

此外,我很好奇这是否真的对你有用?:

JISystem.setAutoRegisteration(true);

这意味着 j-interop 将根据需要自动尝试修改注册表中的值/键。根据我的经验,如果您想访问 WbemScripting.SWbemLocator 类,由于更严格的安全限制(必要的密钥由“TrustedInstaller”用户拥有),从 Windows Vista 及更高版本开始,这种自动修改不再可能。我总是不得不将其设置为 false 并在注册表中手动修改值/键。

于 2015-01-22T13:39:04.913 回答