Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取一个对象';通过在Java中的ActiveDirectry中通过LDAP解析其GUID来命名_Java_Active Directory_Ldap_Guid - Fatal编程技术网

获取一个对象';通过在Java中的ActiveDirectry中通过LDAP解析其GUID来命名

获取一个对象';通过在Java中的ActiveDirectry中通过LDAP解析其GUID来命名,java,active-directory,ldap,guid,Java,Active Directory,Ldap,Guid,nxlog生成的日志中有一个具有此格式的打印机设备GUID: 119d0d80-699d-4e81-8e4e-5477e22ac1b3 我想通过LDAP解析设备的GUID来获取设备名称。但是,我遇到的最近的字段是响应中的objectGUID,它显然是Base64编码值: objectGUID::fuAW6fefLke30d46TDTUWA== 这两个以上的guid是相对的吗?(换句话说,我是否应该在格式转换后在AD中的objectGUID字段中搜索第一个GUID 如何在java中使用LDAPq

nxlog生成的日志中有一个具有此格式的打印机设备GUID:

119d0d80-699d-4e81-8e4e-5477e22ac1b3

我想通过LDAP解析设备的GUID来获取设备名称。但是,我遇到的最近的字段是响应中的
objectGUID
,它显然是
Base64
编码值:

objectGUID::fuAW6fefLke30d46TDTUWA==


这两个以上的guid是相对的吗?(换句话说,我是否应该在格式转换后在
AD
中的
objectGUID
字段中搜索第一个GUID

如何在java中使用
LDAP
query获取对象名

无法通过
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();
名称(
)的格式正确吗?(我在
ldapsearch
的响应输出中没有看到使用此格式的任何迹象)

与必须使用的GUID相比,Microsoft Active Directory中使用的有点奇怪

你必须应付几个方面,包括


我确实找到了一些引用。

您必须执行搜索。我不是Java开发人员,但从我的发现来看,
LdapContext
似乎不允许您这样做。如果可以,您可以尝试使用(并使用
“LDAP://mydomain.com/”
作为LDAP路径。@user207421谢谢。这里的一个问题是我无法解码从ldapsearch响应获得的
objectGUID
。(它成功地从Base64转换为Byte,但从Byte到string的转换产生了一个乱码字符串,与GUID字符串格式不太接近)因此,我无法确认此字段是否是我应该查找GUID的字段(例如
119d0d80-699d-4e81-8e4e-5477e22ac1b3
)。因此我不确定搜索的目标是什么。
javax.naming.NameNotFoundException: [LDAP: error code 32 - 0000208D: NameErr: DSID-0310021B, problem 2001 (NO_OBJECT), data 0, best match of:
    ''