我使用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中使用模拟吗?
答案 0 :(得分:0)
我不是百分百肯定,但我已经与j-interop合作了一段时间,我从未见过或读过这个功能,所以我不认为这是可能的。在我看来,你总是必须指定凭据。
此外,我很好奇这是否真的适合你?:
JISystem.setAutoRegisteration(true);
这意味着j-interop会根据需要自动尝试修改注册表中的值/键。根据我的经验,如果你想访问WbemScripting.SWbemLocator类,由于更严格的安全限制(必要的密钥由&TrustedInstaller'用户拥有),这种自动修改不再可能从Windows开始Vista及以上。我总是必须将其设置为false并在注册表中手动修改值/键。