0

每当我们尝试computer在 Microsoft Active Directory 中创建对象时,如下所示:

var ldap = require('ldapjs');

var client = ldap.createClient({
  url: 'ldap://<<host>>:389'
});

client.bind('<<Admin DN>>', '<<password>>', function(err) {
  if(err){
      console.log('error',err);
  }else{
      console.log('bind is success');
  }
});

var newDN = "CN=testcomputeruser,OU=testou,DC=test,DC=com";
var newUser = {
    cn: 'newtestComputer334',
    objectClass: 'computer',
    description: 'This is test implementation hence this is test description.', 
    //UndefinedAttributeTypeError:  'msDS-RevealedList':'S:12:RevealedList:CN=RevealedList,OU=testou,DC=test,DC=com',   
    //UndefinedAttributeTypeError   'msDS-isGC':'FALSE',
    //UndefinedAttributeTypeError   'msDS-isRODC':'FALSE',
    //UndefinedAttributeTypeError   'msDS-SiteName':'TestmsDSSiteName', 
    //UndefinedAttributeTypeError   'msDS-IsUserCachableAtRodc':'568974',   
  }

client.add(newDN, newUser,function(err, resp) {
    console.log('newDN : ', newDN);
    console.log('newUser : ' ,newUser);
  if(err){
      console.log('error',err);
  }else{
      console.log('new user is success');
  }
})

在提供适当的值之后,它UndefinedAttributeTypeError因少数属性而失败。msDS-RevealedList, msDS-isGC, msDS-isRODC, msDS-SiteName and msDS-IsUserCachableAtRodc

有什么方法可以找到相同的问题吗?

4

1 回答 1

2

这些都是构造属性,这意味着 AD 在您请求它们时计算这些属性的值。它们不可写。

有时您会在在线文档中看到这一点。例如,文档msDS-RevealedList说:

msDS-RevealedList 属性由 msDS-RevealedUsers 属性构成

但是一些文档页面并没有告诉你,比如msDS-isGC.

确定它是否是构造属性的最简单方法是使用 AD 用户和计算机。确保选择了查看 -> 高级功能。然后导航到 OU 并打开您要查看的对象类型(如计算机)的属性。然后转到属性编辑器选项卡。使用“过滤器”按钮并确保取消选择“仅显示”选项。然后显示或隐藏构造属性,并查看您要查找的属性是否显示。

ADUC 属性编辑器

于 2019-12-31T18:11:19.227 回答