我必须将一些代码从VB翻译到C#,虽然我读过MSDN,但无法完全理解PutEx的工作原理。就我而言,我有以下几点:
Set ObjUser = GetObject("LDAP://" + myPathVariable)
ObjUser.PutEx 1, "Company", 0有人能给我解释一下这句话到底是干什么的吗?
我理解的是,第一个参数是动作(在本例中是ADS_PROPERTY_CLEAR),第二个参数是属性名,第三个参数是属性值。因此,这一行将清除ObjUser中的任何数据,然后追加这些值?
如果是这样的话,我们为什么不使用Put呢?
发布于 2017-08-18 13:17:14
IADs::Put()可以设置值,但不能清除值,这意味着可以使用该方法设置不同的值,但不能完全删除值(即将属性设置为NULL)。对于后者,您必须使用IADs::PutEx()。
来自脚本盖伊博客的更详细的解释
接下来,我们使用这两行代码完全删除Ken的电话号码: objUser.PutEx ADS_PROPERTY_CLEAR,"telephoneNumber",0 objUser.SetInfo 如您所见,我们调用
ADS_PROPERTY_CLEAR方法并传递给它三个参数:1)表示要执行的操作的常量telephoneNumber,;2)要清除的属性telephoneNumber,;以及3)清除属性时需要的参数0,。然后,我们调用SetInfo方法将更改写回Active。如果重新运行检索具有电话号码的用户列表的脚本,Ken将不再出现在列表中。那是因为他已经没有电话号码了,甚至连一个空字串也没有。
https://stackoverflow.com/questions/45756833
复制相似问题