问题:
今天使用Python的第三方库pyad往AD中修改部门(OU)的信息,通过ou.update更新部门属性,想要改部门的名字(Name),这是报错:“目录服务不能在一个对象的RDN 属性上执行该请求的操作”
解决过程:
通过查看这个update的源码,支持写入属性,也没写哪些属性可写。再看看ou对象有没有其他方法, 这时,看到有一个ou.rename属性,估计是重命名的方法,执行了一下,确实如猜想一样。
解决办法:
更新OU的属性时,执行ou.update(attr={}),attr为属性的键值对字典,键必须跟AD属性一致,并且这个属性可写。
更新OU的名字时,执行ou.rename(new_name="xxxx")
提醒:
官方文档的使用教程写的不够详细,大家可以自己看看源码,也不难,多看看有什么其他方法。
安装pyad可以参考我的另外一篇文章:http://blog.bigyoung.cn:10084/443.html