King0770-Notes-ldapsearch-to-csv: Difference between revisions

No edit summary
Line 24: Line 24:
                       }
                       }


filter = Net::LDAP::Filter.eq("displayName", "*")
filter = Net::LDAP::Filter.construct("(&(zimbraAccountStatus=active)(&(!(zimbraIsSystemResource=TRUE))(!(zimbraIsSystemAccount=TRUE))))")
filter2 = Net::LDAP::Filter.eq("objectClass", "zimbraAccount")


joined_filter = Net::LDAP::Filter.join(filter, filter2)
treebase = "ou=people,dc=test,dc=local"


treebase = "ou=people,dc=example,dc=com"
ldap.search(:base => treebase, :filter => filter) do |entry|
print "#{entry.displayName} "
print "#{entry.zimbraMailDeliveryAddress} "
print "#{entry.zimbraAccountStatus} "  
puts
end


ldap.search(:base => treebase, :filter => joined_filter) do |entry|
        print "NAME: #{entry.displayName}  "
        print "MAIL: #{entry.zimbraMailDeliveryAddress}  "
        puts
end
</pre></code>
</pre></code>



Revision as of 15:03, 25 May 2016

Purpose

Quick and dirty command to convert ldapsearch output to csv output.

ldapsearch -LLL -x -h `zmhostname`:389 -D $zimbra_ldap_userdn -w $zimbra_ldap_password '(&(zimbraAccountStatus=active)(&(!(zimbraIsSystemResource=TRUE))(!(zimbraIsSystemAccount=TRUE))))' cn sn displayName mail | sed -n '1h; 2,$H;${g;s/\n/,/g;p}' | sed 's/,,/\n/g'

Use Ruby!

require 'rubygems'
require 'net/ldap'

ldap = Net::LDAP.new  :host => "zimbra-ldap.example.com",
                      :port => "389",
                      :base => "ou=people,DC=example,DC=com", 
                      :auth => {
                      :method => :simple,
                      :username => "uid=zimbra,cn=admins,cn=zimbra",
                      :password => "s0Mep@sSw0rD"
                      }

filter = Net::LDAP::Filter.construct("(&(zimbraAccountStatus=active)(&(!(zimbraIsSystemResource=TRUE))(!(zimbraIsSystemAccount=TRUE))))")

treebase = "ou=people,dc=test,dc=local"

ldap.search(:base => treebase, :filter => filter) do |entry| 
		print "#{entry.displayName} " 
		print "#{entry.zimbraMailDeliveryAddress} " 
		print "#{entry.zimbraAccountStatus} " 
		puts
end

Jump to: navigation, search