
    %
i!                     4   d dl Z d dlmZ d dlZd dlZd dlT d ada ej                    Z	d Z
d Zd Zd Zd	 Zdd
Zd Zi Zej                                        D ]\  ZZedd         dk    r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)Callable)* c                      dt           z  } t          |           }|                    d          D ]}t          |  d|            ddg}|D ],}|                    |          }t          d| d|            -dS )	zDumps the root DSELDAP://%srootDSESupportedLDAPVersionz supports ldap version CurrentTimedefaultNamingContext =N)serverADsGetObjectGetprint)pathrootdseitem
attributesattrvals         C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\win32comext/adsi/demos/test.pyDumpRootr      s    &D4  G233 6 644d445555!78J    kk$$       c                 N    d}t          | |                                           d S )NzRAbstract lDAPDisplayName schemaIDGUID schemaNamingContext attributeSyntax oMSyntax_DumpTheseAttributessplitchildattrss     r   
_DumpClassr!       s%    `E.....r   c                 N    d}t          | |                                           d S )NzlDAPDisplayName schemaIDGUID adminDescription adminDisplayName rDNAttID defaultHidingValue defaultObjectCategory systemOnly defaultSecurityDescriptorr   r   s     r   _DumpAttributer#   %   s(     dE.....r   c           	          |D ]]}	 |                      |          }n# t          j        $ r
}Y d }~-d }~ww xY wt          dk    rt	          d| j         d| d|            ^d S )N   z<Error: >r   z: r   )r   	pythoncom	com_errorverbose_levelr   Class)	r   r    r   r   detailshrmsgexcargs	            r   r   r   *   s     3 3	$))D//CC" 	$ 	$ 	$HHHH	$ A1ek11T11C112223 3s   55c                  *   dt           z  } t          |           }|                    d          }dt           z   |z   } t          d|            t          |           }dx}x}x}}|D ]`}|j        }	|	dk    rt          |           |dz  }$|	dk    rt          |           |dz  }?|	d	k    r|dz  }Kt          d
|	           |dz  }at          rFt          d|d           t          d|d           t          d|d           t          d|d           dS dS )zDumps the default DSE schemar   schemaNamingContextLDAP://
Binding tor   classSchema   attributeSchema	subSchemazUnknown class:	Processedclassesr   zsub-schema'szunknown typesN)r   r   r   r   r*   r!   r#   r)   )
r   r   nameobnclassesnattrnsubnunkr   
class_names
             r   
DumpSchemarA   9   sb    &D4  G;;,--D v$D	,	d		B%&&H&u&td   [
&&uMHH,,,5!!!QJEE;&&AIDD"J///AIDD 2k8Y///k5,///k4000k411111	2 2r   c           	         d|z  }t          | | j         d| j                    	 t          | j        t
                    }n# t          j        $ r d }Y nw xY w|||                                }t          | d|j	         d|j
         d           dg}|                    |          }|D ]+}|j        D ]!\  }}	t          | d|j         d|            ",| D ]}
t          |
|d	z              d S )
Nz  z	 object: z RDN='z', ObjectDN=''distinguishedNamez Attribute 'z' = r5   )r   r*   Namer   ADsPathIID_IDirectoryObjectr'   r(   GetObjectInformationRDNObjectDNGetObjectAttributesValuesAttrName_DumpObject)r;   levelprefixdir_obinfonamesr    r   r   typr   s              r   rN   rN   \   sV   E\F	V
1RX
1
1
1
1222bj*>??   **,,FFtxFFdmFFFGGG$%**511 	G 	GD K G GSEET]EEEEFFFFG  & &E519%%%%& &s   A AAc                      dt           z  } t          |           }|                    d          }dt           z   |z   } t          d|            t          |           }t	          |           dS )z&Recursively dump the entire directory!r   r
   r2   r3   N)r   r   r   r   rN   )r   r   r:   r;   s       r   DumpAllObjectsrV   r   sj    &D4  G;;-..D v$D	,	d		B OOOOOr      VT_c                     dt            d} t          | t                    }dx}x}}|D ]\}|j                                        }|dk    rg }|j        r|                    d           |j        r|                    d           d                    |          }ddl	}	|	j
                            |j                  }
t          d	k    r)t          d
                    |j        ||
                     |dz  }|dk    r8|j        rd}nd}t          d	k    rt          d|j         d|            |dz  }|dk    rJt$                              |j        d          }t          d	k    rt          d|j         d|            |dz  }^t          dk    r5t          d|d           t          d|d           t          d|d           dS dS )z/Dumps the schema using an alternative techniquer2   schemar   classAbstract	Auxiliaryz, Nr%   z.Class: Name={}, Flags={}, Primary Interface={}r5   propertyzMulti-ValuedzSingle-ValuedzProperty: Name=syntaxz<unknown type>zSyntax: Name=z, Datatype = r8   r9   
propertieszsyntax items)r   r   IID_IADsContainerr*   lowerr\   appendr]   joinwin32com.utilutilIIDToInterfaceNamePrimaryInterfacer)   r   formatrE   MultiValuedvt_mapgetOleAutoDataType)r   rZ   nclassnpropnsyntaxr   
item_classitemsdescwin32comiid_nameval_type	data_types                r   DumpSchema2rx      s   #V###D$ 122F  F UW    Z%%''
  E} )Z(((~ *[)))99U##D    }778MNNH!!DKK	4   
 aKFF:%% +)*!!?	??X??@@@QJEE8##

4#79IJJI!!IdiIIiIIJJJqLGk69---k5,///k7N33333 r   c                  z    t          dt                    } | D ]"}t          d|j         d|j         d           #dS )z(Dumps the GC: object (whatever that is!)zGC:zGC ob:  ()N)r   ra   r   rE   rF   )r;   sub_obs     r   DumpGCr}      sT    	e.	/	/B : :888v~8889999: :r   c                      dt            d} t          | t                    }|                    ddg           |D ]"}t	          d|j         d|j         d           #dS )	zDumps the local machine usersWinNT://	,computerUserGroupzUser/Group: rz   r{   N)
local_namer   ra   
put_Filterr   rE   rF   )r   r;   r|   s      r   DumpLocalUsersr      s{    +j+++D	d-	.	.BMM67#$$$ ? ?=V[==FN===>>>>? ?r   c            	      .   dt            d} t          | t                    }|                    dg           |D ][}t	          d|j         d|j         d           |                                }|D ]"}t	          d|j         d|j         d           #\dS )	zDumps the local machine groupsr   r   r   zGroup: rz   r{   z  Group member: N)r   r   ra   r   r   rE   rF   Members)r   r;   r|   membersmembers        r   DumpLocalGroupsr      s    +j+++D	d-	.	.BMM7) G G888v~888999.."" 	G 	GFEV[EEFNEEEFFFF	G	G Gr   c                 ~   dd l }t          d|j                            t          j        d                   z             t          d           t          d           t          d           | D ]}t          |j        d|j                   t                       t          d           t	          j        d           d S )	Nr   z&Usage: %s [-s server ] [-v] [Test ...]z'  -v : Verbose - print more informationz:  -s : server - execute the tests against the named serverzwhere Test is one of::z-If not tests are specified, all tests are runr5   )	osr   r   basenamesysargv__name____doc__exit)testsr   ts      r   usager      s    III	
2RW5E5Echqk5R5R
RSSS	
3444	
FGGG	
!""" * *aj#qy))))	GGG	
9:::HQKKKKKr   c                  H   dd l } dd l}g }t                                                      D ]3}t	          |t
                    r|j        r|                    |           4|                      t          j	        dd          d          \  }}|D ]A\  }}|dk    r|d         dvr|dz  }|a
|dk    rt          |           |d	k    r
t          dz  aBt          |          dk    rt          d
           |}n@g }|D ];}	|D ]$}
|
j        |	k    r|                    |
            n%t          d|	z             <t          |          st          d           t          |           |D ]?}	  |             #  t          d|j        z             |                                 Y =xY wd S )Nr   r5   zs:hvz-sz\//z-hz-vz;Running all tests - use '-h' to see command-line options...zTest '%s' unknown - skippingzNothing to do!zTest %s failed)getopt	tracebackglobalsvalues
isinstancer   r   rc   r   r   r   r   r)   lenr   r   	print_exc)r   r   r   r;   optsargsoptr   dotestsr/   r   tests               r   mainr      s   MMMEii    b(## 	
 	LLsx|V44JD$ 
 
S$;;2we##s
F$;;%LLL$;;QM
4yyA~~KLLL 	< 	<C < <:$$NN1%%%E % 4s:;;;w<< e " "	"DFFFF	""T]2333!!!!!" "s   %
E00-F__main__)r   )r   collections.abcr   r'   win32apiwin32com.adsir)   r   GetComputerNamer   r   r!   r#   r   rA   rN   rV   rk   __dict__rr   r:   r   rx   r}   r   r   r   r   r    r   r   <module>r      s   



 $ $ $ $ $ $         	%X%''
     $/ / /
/ / /
3 3 3 2  2  2F& & & &,  * 
#))++  ID#BQBx5s)4 )4 )4X: : :? ? ?G G G  )" )" )"X zDFFFFF r   