dsquery

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
Atlante
Messages : 337
Inscription : mer. 29/juin/2011 18:35
Localisation : Paris

dsquery

Message par Atlante »

Hello,

Petit post vite fait sur les dsquery pour ceux qui font des requêtes ad :)

Code : Tout sélectionner

Declare dsget(dsquery.s)
Declare checkgroup(output.s)
Global UserLu.s


Procedure AD(id.s) ;
 
  requete = RunProgram("dsquery"," user -domain mondomain.fr.blabla -samid " + id,"", #PB_Program_Open|#PB_Program_Read|#PB_Program_Hide   )
 
If requete
  While ProgramRunning(requete)
    output.s = ReadProgramString(requete)
   If output <> ""
     PrintN( output )
    ; Debug output
     dsget(output)
    EndIf

  Wend
  CloseProgram(requete)

EndIf
EndProcedure


Procedure dsget(dsquery.s)
  
  requete2 = RunProgram("dsget"," user " + dsquery + " -memberof","", #PB_Program_Open|#PB_Program_Read   )
;Debug "dsget user " + dsquery + " - hmdir"
a = -1
If requete2
  output.s = ""
  While ProgramRunning(requete2)
    output.s = output + ReadProgramString(requete2)
  
  Wend
  CloseProgram(requete2)
  checkgroup(output.s)
EndIf
EndProcedure

Procedure checkgroup(output.s)
  ;Debug output
 FileSeek(0,0)
  While Eof(0) = 0
    GroupLu.s = ReadString(0)
    ;Debug GroupLu
    If FindString(output,GroupLu,1,#PB_String_NoCase)
      Debug GroupLu + ";" + UserLu
      WriteStringN(2,GroupLu + Chr(9)+ UserLu)
    EndIf
  Wend
EndProcedure

 If ReadFile(0, "groups.txt")

  If ReadFile(1, "users.txt")
    
    
    If CreateFile(2, "resultat.txt")
      OpenConsole()
      PrintN("Lancement du script")
      WriteStringN(2,"Group AD" +Chr(9) +"Login")
     
    While Eof(1) = 0     
      UserLu.s = ReadString(1)
      PrintN("check de " + UserLu)
      ad(UserLu)
  
    Wend
    
    
  PrintN("Scan termine")  
    
CloseFile(0)    

  
    Else
         MessageRequester("Erreur", "Impossible de créer le fichier Resultat.csv", #PB_MessageRequester_Ok )
         End
    
    EndIf

  Else
    MessageRequester("Erreur", "Impossible d'ouvrir le fichier users.txt", #PB_MessageRequester_Ok )
    End
  EndIf
Else
  MessageRequester("Erreur", "Impossible d'ouvrir le fichier groups.txt", #PB_MessageRequester_Ok )
  End
EndIf
Modérateur
Config : Intel I5 4670K, Nvidia Geforce GTX 1060, 16go RAM, SSD 256go, DD 2000go