0

我一直在寻找一种将 ObjectGuid 从 Active Directory 中转换出来的方法,它是一种特殊类型,可以转换为字符串,这看起来很奇怪,使用诸如 ldapjs 之类的库,或者使用 ping federate 将其添加为声明。这方面的一个例子如下:

const ldapjs = require("ldapjs");
let _client = ldapjs.createClient({
        "url": this._ldap_uri
      });
_client.search(this._search_dn, opts, (error, res) => {
          res.on("searchEntry", (entry) => {
              console.log(entry.object.objectGUID)
          }

下面是一个来自 ldapjs 的输出示例。当您将其添加为声明时,ping 联邦也会出现同样的情况。

H�Y��fB�_-_���

但是,这等效于有效的 UUID。

b9****48-6***-42**-a**f-2d5f*****40b

我想要做的是将这个奇怪的值转换为正确的 UUID。我已经搜索并测试了一些不同的帖子和网站,但我还没有找到有效的解决方案。

以下是我研究的一些:

如果有人对此有解决方案,将不胜感激。

4

1 回答 1

0

试用此代码(读取 GUID):

String.prototype.padLeft = function( len, str ) {
        //return Array( len - String(this).length + 1 ).join(str) + this;
        var s = this;
        str = str || '0';
        if ( str.length > 0 ) {
            while ( s.length < len ) {
                s = ( str + s );
            };
        }
        return s;
    }

var destAD = GetObject("LDAP://dc.yourdomain.pl/cn=Administrator,cn=Users,dc=yourdomain,dc=pl");
var guidValueArr = destAD.Get("objectguid").toArray();
var guid = "", i;
for ( i = 0; i < guidValueArr.length; i ++ ) {
    guid += guidValueArr[i].toString(16).padLeft(2,"0");
}
var guidFormated = guid.replace(/(.{2})(.{2})(.{2})(.{2})(.{2})(.{2})(.{2})(.{2})(.{4})(.{12})/, "$4$3$2$1-$6$5-$8$7-$9-$10");
alert( guidFormated );

通用唯一标识符

于 2019-11-24T15:58:23.427 回答