
    	h#                         S SK r S SKrS SKrS SKJr  S SKrS SKrS SKrS SKrS q	Sq
S rS rS rS rS rS rSS	 jrSS
 jrSS jrS rS rS r\S:X  a  \" 5         gg)    N)Callablec                 2    [         (       a  [        U 5        g g N)verbose_levelprint)msgs    kC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\win32/Demos/win32netdemo.pyverboser
      s    }c
     c                     Sn  [         R                  " [        U 5        [        S5        0 nXS'   SUS'   [
        R                  US'   SUS'   [
        R                  [
        R                  -  US	'   [         R                  " [        S
U5          [         R                  " [        U SS5        [        S5        [         R                  " [        U SS5        [         R                  " [        U 5        [        S5        g! [         R                   a     Nf = f! [         R                   a     Ntf = f! [         R                  " [        U 5        f = f)z.Creates a new test user, then deletes the userPyNetTestUserz*Warning - deleted user before creating it!namedeletemepasswordprivz'Delete me - created by Python test codecommentflags   wrongnewz:ERROR: NetUserChangePassword worked with a wrong password!z9Created a user, changed their password, and deleted them!N)win32net
NetUserDelserverr   errorwin32netconUSER_PRIV_USERUF_NORMAL_ACCOUNT	UF_SCRIPT
NetUserAddNetUserChangePassword)testNameds     r	   
CreateUserr#      s   HFH-:; 	AfIAjM**AfI<AiL..1F1FFAgJ1%.	**68WeLNO 	&&vxUKFH-	
EF' >>  ~~ 		 	FH-s;   &C; (D 7D/ ;DDD,)D/ +D,,D/ /Ec                      Sn Sn [         R                  " [        S[        R                  U 5      u  p#n [        S[        U5      U4-  5        U H  n[        SUS   -  5        US-  nM     U (       d  OMp  U(       d   S5       e[        S5        g	)
zEnumerates all the local usersr   r      z3Call to NetUserEnum obtained %d entries of %d totalzFound user %sr   zCould not find any users!zEnumerated all the local usersN)r   NetUserEnumr   r   FILTER_NORMAL_ACCOUNTr
   lenr   )resumenuserdatatotalusers        r	   UserEnumr.   1   s    FE
&22A{88&
V 	ASYPUDVV	
 DOd6l23QJE    ---5	
*+r   c            	         Sn Sn [         R                  " [        SU5      u  p#nU Hu  n[        SR                  " S	0 UD65        Sn [         R
                  " [        US   SU5      u  pcnU H#  n[        SR                  " S	0 UD65        U S-  n M%     US:X  a  Mu  MV     U(       d  OM  U (       d   S5       e[        S5        g)
z Enumerates all the domain groupsr   r   Found group {name}:{comment} r   z Member {name}0Couldn't find a single member in a single group!zEnumerated all the groupsN )r   NetGroupEnumr   r
   formatNetGroupGetUsersr   )nmembersr)   r+   r,   groupmemberresume
memberdatamembers           r	   	GroupEnumr;   E   s    HF
&33FAvFVE3::CUCDL2:2K2KE&M1f3/
< )F,33=f=>MH )  1$   ! " GGG8	
%&r   c            	         Sn Sn [         R                  " [        SU 5      u  p#n U H  n[        SR                  " S0 UD65        Sn [         R
                  " [        US   SU 5      u  pcnU HF  n[        R                  " [        US   5      u  pn
US-  n[        SR	                  XS   5      5        MH     US:X  a  M  My     U (       d  OM  U(       d   S	5       e[        S
5        g)zEnumerates all the local groupsr   r   r0   r      sidz Member {} ({})domainandnamer1   zEnumerated all the local groupsNr2   )	r   NetLocalGroupEnumr   r
   r4   NetLocalGroupGetMemberswin32securityLookupAccountSidr   )r)   r6   r+   r,   r7   r8   r9   r:   usernamedomaintypes              r	   LocalGroupEnumrG   ^   s    FH
&88FKVE3::CUCDL2:2R2RE&M1f3/
< )F-:-K-Ku.*Hd MH-44Xo?VWX )  1$    ' ( GGG8	
+,r   c                  J   Sn  [         R                  " [        S[        R                  SU 5      u  pn U HV  n[        SUS   -  5        Sn [         R                  " [        SU5      u  pRnU H  n[        SU-  5        M     U(       d  MV  MA     U (       d  OM  [        S5        g)	z%Enumerates all servers on the networkr   d   NzFound server %sr   r=   zE %(netname)s (%(path)s):%(remark)s - in use by %(current_uses)d usersz)Enumerated all the servers on the network)r   NetServerEnumr   r   SV_TYPE_ALLr
   NetShareEnumr   )r)   r+   r,   sshareresume	sharedatashares          r	   
ServerEnumrQ   z   s    F
&44C00$
V A%&	12K080E0EA{1-	+ 'E_  '
 # 	  ) * 

56r   c           	      $   SnU c  [         R                  " 5       n U R                  S5      S:  a  [         R                  " 5       S-   U -   n Sn [        R
                  " [        U5        [        S5        SU0n[        R                  " [        SU5         S	U 0n[        R                  " [        X!U/5        [        R                  " [        X!5      u  pVn[        S
U5        US   S	   U :w  a  [        SU  SU< 35        [        R                  " [        X% Vs/ s H  oS	   PM	     sn5        [        R
                  " [        U5        [        S5        g! [        R                   a     Nf = fs  snf ! [        R
                  " [        U5        f = f)zNCreates a local group, adds some members, deletes them, then removes the groupr%   N\r   python_test_groupz4WARNING: existing local group '%s' has been deleted.r   r   r?   zmembers arezERROR: LocalGroup just added z, but members are zHCreated a local group, added and removed members, then deleted the group)win32apiGetUserNamefindGetDomainNamer   NetLocalGroupDelr   r   r   NetLocalGroupAddNetLocalGroupAddMembersrA   NetLocalGroupDelMembers)	unamelevelr7   
group_dataumemtotresms	            r	   
LocalGroupre      s`   E}$$&zz$!&&(4/%7E!!&%0DE %Jfa41e$((sC 88N#mS!q6/"e+1%8J3'RS((E<1o.<	
 	!!&%0	
TU# >>  = 	!!&%0s1   &E BE2 E-%E2 E*)E*-E2 2Fc                     U c  [         R                  " 5       n [        S5        [        R                  " [
        U S5      nUR                  5        H  u  p#[        U SU 35        M     g)z0Dumps level 3 information about the current userNz&Dumping level 3 information about userr%   =)rU   rV   r   r   NetUserGetInfor   itemsr
   )userNameinfokeyvals       r	   GetInforn      sW    '')	
23""68Q7DJJL3%q !r   c                    U c  [         R                  " 5       n [        R                  " [        U S5      n UR                  5       nSUS'   [        R                  " [        U SU5        [        R                  " [        U S5      S   n[        U5      S:w  a  [        SU-  5      e[        S5        [        R                  " [        U SU5        g! [        R                  " [        U SU5        f = f)z>Attempts to change the current users comment, then set it backNr%   zTest commentusr_commentz-Could not read the same comment back - got %szChanged the data for the user)
rU   rV   r   rh   r   copyNetUserSetInfostrRuntimeErrorr   )rj   oldDatar"   r   s       r	   SetInforv      s    '')%%fh:G	>LLN)-!Q7%%fh:=Is8~%NQTTUU-.!W=!W=s   A9C C,c                  2    [         R                  " SS5      n g)z=Doesn't actually change anything, just make sure we could ;-)Ni  )r   NetWkstaGetInfo)rk   s    r	   SetComputerInfory      s    ##D#.Dr   c                 ~   SS K n[        SUR                  R                  [        R
                  S   5      -  5        [        S5        [        S5        [        S5        [        S5        U  H$  n[        UR                  SUR                  5        M&     [        5         [        S5        [        R                  " S	5        g )
Nr   z&Usage: %s [-s server ] [-v] [Test ...]z'  -v : Verbose - print more informationz:  -s : server - execute the tests against the named serverz-  -c : include the CreateUser test by defaultzwhere Test is one of::z-If not tests are specified, all tests are runr   )	osr   pathbasenamesysargv__name____doc__exit)testsr|   ts      r	   usager      s    	
2RWW5E5Echhqk5R
RS	
34	
FG	
9:	
!"ajj#qyy) 	G	
9:HHQKr   c                  Z   [        5       R                  5        V s/ s H/  n [        U [        5      (       d  M  U R                  (       d  M-  U PM1     nn [
        R
                  " [        R                  SS  S5      u  p#SnU H7  u  pVUS:X  a  UqUS:X  a  [        U5        US:X  a	  [        S-  q
US:X  d  M5  SnM9     [        U5      S	:X  a*  [        S
5        UnU(       d  UR                  [        5        OF/ nU H>  nU H'  n	U	R                  U:X  d  M  UR!                  U	5          M.     [        SU-  5        M@     [        U5      (       d  [        S5        [        U5        U H  n
 U
" 5         M     g s  sn f !   [        SU
R                  -  5        ["        R$                  " 5          MG  = f)Nr   zs:hvcFz-sz-hz-vz-cTr   z;Running all tests - use '-h' to see command-line options...zTest '%s' unknown - skippingzNothing to do!zTest %s failed)globalsvalues
isinstancer   r   getoptr   r   r   r   r   r(   r   remover#   r   append	traceback	print_exc)obr   optsargscreate_useroptrm   dotestsargr   tests              r	   mainr      sc   !)**,X,B
2x0HRRZZR,EXsxx|W5JDK$;F$;%L$;QM$;K  4yA~KLNN:&C::$NN1% 
 4s:;  w<<e	"F A YF	""T]]23!s   E3E3E3'E88/F*__main__r   )r   r   r   collections.abcr   rU   r   r   rB   r   r   r
   r#   r.   r;   rG   rQ   re   rn   rv   ry   r   r   r   r2   r   r	   <module>r      s{     
  $    	
G8,('2-876V@ >"/&"R zF r   