
    %
i                         d dl Z d dlZd dlmZmZ d dlT dai Zd Zd Z	d Z
d Ze	e
edZd	 Zd
 Zd Zd Zd Zedk    r e             dS dS )    N)adsiadsicon)*c                     t           sCt          j                                        D ]$\  }}|                    d          r
|t           |<   %t                               | t          |                     S )NADSTYPE_)ADsTypeNameMapr   __dict__items
startswithgethex)type_valnvs      C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\win32comext/adsi/demos/search.pygetADsTypeNamer      sg     &$**,, 	& 	&DAq||J'' &$%q!hH666    c                 ,    t          j        | d          S )NT)
pywintypesIIDbs    r   _guid_from_bufferr      s    >!T"""r   c                 D    t          t          j        |                     S N)strr   SIDr   s    r   _sid_from_bufferr      s    z~a  !!!r   c                     | S r    )xs    r   <lambda>r"      s    A r   )
objectGUID	objectSidinstanceTypec                 P    t           j        | k    rt          d||z             d S d S )Nzlog:)optionsverboseprint)levelmsgargss      r   logr-   %   s1    %fcDj!!!!!  r   c                      t          j        dt          j        t          j        dt           j                  } t          j        |           }|D ]$}|                    t           j                  }|c S d S )NzGC:r   )	r   ADsOpenObjectr'   userpasswordIID_IADsContainerADsBuildEnumeratorQueryInterfaceIID_IDirectorySearch)contenumegcs       r   getGCr:   *   sl    w|W-q$2H D "4((D  d788			4r   c                     | \  }}|_t          ddt          |                     fd|D             }t          |          dk    r|d         }t          d d|           d S t          d d           d S )	N   zproperty '%s' has type '%s'c                 l    g | ]0}t                              t                    |d                    1S )r   )
convertersr   _null_converter).0r   	prop_names     r   
<listcomp>z#print_attribute.<locals>.<listcomp>:   s3    RRRa	?;;AaDAARRRr      r    =z is None)r-   r   lenr)   )col_data	prop_typevaluesvaluerA   s       @r   print_attributerK   6   s    #+ Iy&A,i	9R9RSSSRRRR6RRRu::??!HE')''e''(((((%)%%%&&&&&r   c                  |   t                      } | t          dd           d S t          t          ffg}|                     |          \  }}t          dd||           t
          j        r t
          j                            d          }nd }|                     t
          j	        |          }| 
                    |          }|t          k    rt          d           |@	 |                     |          }|n&|                     ||          }t          |           >nk|D ]h}	 |                     ||          }t          |           )# t           j        $ r.}	|	d         t$          k    r t          |d d f           Y d }	~	ad }	~	ww xY w| 
                    |          }|t          k    |                     |           d S )Nr   zCan't find the global catalog   z"SetSearchPreference returned %d/%r,z-- new row --)r:   r-   ADS_SEARCHPREF_SEARCH_SCOPEADS_SCOPE_SUBTREESetSearchPreferencer'   
attributessplitExecuteSearchfilter
GetNextRowS_ADS_NOMORE_ROWSr)   GetNextColumnName	GetColumnrK   r   errorE_ADS_COLUMN_NOT_SETCloseSearchHandle)
r9   prefshrstatusesrR   hcol_namedataadetailss
             r   searchre   B   s   	B	zA.///),=+?@AE))%00LB/X>>> '--c22



44A	q		B
!
!
!o&//22#||Ax00%%%& 
   5 55<<1--D#D))))z 5 5 5qz%999#QdO444444445 ]]1) !
!
!* s   !%EF$E??Fc                  t   ddl m}   |             }|                    ddddd           |                    d	d
ddd           |                    dddd           |                    ddd           |                    ddd           |                    dddd           |                    dd d!           |                                \  a}t          j        r1t          j        dk    r|                    d"           dt          _        |r|                    d#           t                       d S )$Nr   )OptionParserz-fz--filefilenamezwrite report to FILEFILE)desthelpmetavarz-vz	--verbosecountrC   zincrease verbosity of output)actiondefaultrk   z-qz--quiet
store_truezsuppress output messages)rn   rk   z-Uz--userz$specify the username used to connect)rk   z-Pz
--passwordz$specify the password used to connect z--filterz,(&(objectCategory=person)(objectClass=User))zspecify the search filter)ro   rk   z--attributesz,comma sep'd list of attribute names to printz%Can not use '--verbose' and '--quiet'zYou need not specify args)	optparserg   
add_option
parse_argsr'   quietr(   rZ   re   )rg   parserr,   s      r   mainrw   k   s   %%%%%%\^^F
hZ.Df     +     i3M     dH+QRRR
dL/UVVV

>(	     
N!O     %%''MGT} ?aLL@AAA 20111
HHHHHr   __main__)	pythoncomr   win32com.adsir   r   win32com.adsi.adsiconr'   r   r   r   r   r?   r>   r-   r:   rK   re   rw   __name__r    r   r   <module>r}      s	           ' ' ' ' ' ' ' ' # # # #
7 7 7# # #" " " + $!" 
" " "
	 	 		' 	' 	'& & &R( ( (V zDFFFFF r   