В журнале, сгенерированном nxlog, есть GUID устройства принтера с этим форматом:
119d0d80-699d-4e81-8e4e-5477e22ac1b3
Я хотел бы получить имя устройства, разрешив его GUID через LDAP. Однако ближайшее поле, с которым я столкнулся, - это objectGUID
в ответе ldapsearch , который, по-видимому, является Base64
закодированным значением:
objectGUID:: fuAW6fefLke30d46TDTUWA==
Areэти два вышеуказанных GUID относительно никак? (Другими словами, я должен искать первый GUID среди objectGUID
полей в AD
после преобразования формата?
Как я могу получить имя объекта с помощью LDAP
запроса в Java?
Невозможно было добиться этого с помощью метода getAttribute()
и кода ниже:
//Create the initial directory context
LdapContext ctx = new InitialLdapContext(env,null);
//Bind directly using the string form of the GUID
String strGUID = "<GUID="+guid+">";
//Specify the attributes to return
String returnedAtts[]={"distinguishedName"};
Attributes attr = ctx.getAttributes(strGUID,returnedAtts);
//print out the retrieved attributes
if(attr!=null)
distinguishedName = attr.get("distinguishedName").get().toString();
System.out.println("distinguishedName: " + distinguishedName);
ctx.close();
, и я получил NameNotFoundException
:
javax.naming.NameNotFoundException: [LDAP: error code 32 - 0000208D: NameErr: DSID-0310021B, problem 2001 (NO_OBJECT), data 0, best match of:
''
Формат имени (<GUID="+guid+">
) правильно? (Я не вижу никаких признаков использования этого формата в ответном ответе ldapsearch
)