我正在使用模块back_ldap作为MS-AD-Servers的LDAP代理运行OpenLDAP 2.4.44(有关详细信息,请参阅:
openLDAP as proxy to Active Directory).
现在我需要将架构从AD-Server添加到OpenLDAP-Server,并且已将架构从带有ldapsearch的MS-AD-Server导出到ldif文件中(有关详细信息,请参阅:How can I fetch schema information from the server?).
现在我需要将ldif格式转换为OpenLDAP slapd.conf的模式格式.无法使用ldapadd加载ldif,因为OpenLDAP在代理模式下运行,因此每个请求都将转发到MS-AD-Servers.
你需要做的是删除属性dn,cn和objectClass,并分别用attributetype和objectclass替换olcAttributeTypes:和olcObjectClasses:的所有出现.
你也可以通过shell来做到这一点.
Linux shell上的单线程:
sed '/^dn: /d;/^objectClass: /d;/^cn: /d;s/olcAttributeTypes:/attributetype/g;s/olcObjectClasses:/objectclass/g' file.ldif > file.schema
windows powershell中的相应命令:
Get-Content file.ldif | Where { $_ -notmatch "^dn: " } | Where { $_ -notmatch "^objectClass: " } | Where { $_ -notmatch "^cn: " } | %{ $_ -replace "olcObjectClasses:","objectclass" } | %{ $_ -replace "olcAttributeTypes:","attributetype" } | Out-File file.schema