befadudesert
Messages postés17Date d'inscriptionjeudi 22 février 2007StatutMembreDernière intervention28 janvier 2008
-
18 sept. 2007 à 16:04
befadudesert
Messages postés17Date d'inscriptionjeudi 22 février 2007StatutMembreDernière intervention28 janvier 2008
-
24 sept. 2007 à 16:28
Bonjour à tous.
J'ai rédigé un programme qui analyse ce que sort la fonction cacls mais
j'ai des problèmes pour écrire les analyses dans un tableau HTML.
Lorsque j'execute partiellement le programme pas de problème mais le
programme entier il me dit qu'il ne connait pas la variable MonFic.
'_________________________LECTURE d'un fichier_____________________________
'déclaration file system object
Dim FSO
'instanciation
Set FSO = CreateObject("Scripting.FileSystemObject")
'on instance le fichier texte
Set Ftxt = FSO.OpenTextFile("C:\Documents and Settings\fabienmoreau\test.txt")
'on parcours chaque ligne du fichier texte
Do While Not Ftxt.AtEndOfStream
MaVariable = Ftxt.Readline
if MaVariable <> "" Then
'WScript.echo MaVariable
traitementLigne(MaVariable)
End If
Loop
Ftxt.Close
'__________________________Ecrire d'un fichier_______________________________
Dim FSys, MonFic
FSys = CreateObject("Scripting.FileSystemObject")
MonFic = FSys.CreateTextFile("C:\droits.html")
'cette fonction permet de ne pas écraser ce qui avait écrit précédement dans le fichier
Sub MonFic.writeLine(chaine)
Set FSys = CreateObject("Scripting.FileSystemObject")
Set f = FSys.OpenTextFile("C:\droits.html",8)
With f
MonFic.writeLine chaine
End With
End Sub
'____________________________Préparation du fichier HTML_______________________
MonFic.writeLine "coucou"
MonFic.writeLine "<HTML>"
MonFic.writeLine "<HEAD>"
MonFic.writeLine "<TITLE>Récapitulatifs des droits des dossiers partagés du réseau de chez Lexibook</TITLE>"
MonFic.writeLine "</HEAD>"
MonFic.writeLine ""
MonFic.writeLine "\"
MonFic.writeLine \"<CAPTION> Droits </CAPTION>\"
MonFic.writeLine \"----
\"
MonFic.writeLine \" Chemin du répertoire ou fichier |\"
MonFic.writeLine \"Groupe ou utilisateur ayant des droits |\"
MonFic.writeLine \"Lecture |\"
MonFic.writeLine \"Ecriture |\"
MonFic.writeLine \"Modification |\"
MonFic.writeLine \"Execution |\"
MonFic.writeLine \"Appropriation |\"
MonFic.writeLine \"Controle total |\"
MonFic.writeLine \"\"
MonFic.writeLine \"coucou\"
'_________________________Choix du mot dans la ligne___________________________
'cette fontion découpe les mots d'une chaine et sort le mot de la chaine choisi
'elle affiche également les mots de la chaine
'cette fonction permet de découper la chaine de caractères avec différentes sortes de séparateurs
'cette fonction gère également lorsqu'il y a plusieurs séparateurs à la suite
Function motChoisi(chaine,separateur,numMot)
chaineU =chaine
cpt = 1
nb = -1
Do While nb <> 0
'nb renvoie le premier caractère \" \" trouvé dans la chaine
nb=Instr(chaineU,separateur)
'si aucun espace a été trouvé
If nb <> 0 Then
'un espace est trouvé comme mot
If nb = 1 Then
cpt = cpt-1
chaineU = right(chaineU, len(chaineU)-1)
Else
mot_courant = left(chaineU, nb-1)
If numMot=cpt Then
motChoisi=mot_courant
End If
End If
chaineU=right(chaineU, len(chaineU) - nb+1)
cpt = cpt+1
Else
If numMot=cpt Then
motChoisi=chaineU
End If
End If
Loop
End Function
'__________________________Traitement de chaque ligne_________________________
Sub traitementLigne(Ligne)
'premiere ligne'
If left(Ligne,1) <> \" \" Then
'WScript.echo \"vous etes sur la première ligne\"
chemin = motChoisi(Ligne,\" \",1)
MonFic.writeLine \"----
\"
MonFic.writeLine \"" & chemin & ", \"
reste = right(Ligne,len(Ligne)-len(chemin)-1)
util = motChoisi(motChoisi(reste,\"\\",2),\":\",1)
MonFic.writeLine \"" & util & ", \"
domaineEtUtil=motChoisi(reste,\":\",1)
droits = right(reste,len(reste)-len(domaineEtUtil)-1)
WScript.echo \"chemin : \" & chemin
'WScript.echo \"reste _\" & reste
'Si nomDeDomaine\NomUtilisateur:droits
WScript.echo \"Voici l'utilisateur ou le groupe: \" & util
WScript.echo \"Voici les droits : \" & droits
'On s'occupe maintenant des droits
If Instr(droits,\"(CI)\") <> 0 OR Instr(droits,\"(IO)\") <> 0 OR Instr(droits,\"(OI)\") <> 0 Then
WScript.echo \"Ces droits sont hérités\"
MonFic.writeLine \"" & "X" & ", \"
Else WScript.echo \"Ces droits ne sont pas hérités\"
MonFic.writeLine \"" & "-" & ", \"
End If
If Instr(droits,\"F\") <> 0 Then
Wscript.echo \"possede tous les droits\"
MonFic.writeLine \"" & "X" & ", \"
MonFic.writeLine \"" & "X" & ", \"
MonFic.writeLine \"" & "X" & ", \"
MonFic.writeLine \"" & "X" & ", \"
MonFic.writeLine \"" & "X" & ", \"
MonFic.writeLine \"\"
Else If Instr(droits,\"C\") <> 0 Then
WScript.echo \"ne possèdent pas tous les droits\"
Wscript.echo \"droit de modification\"
WScript.echo \"droit de lecture\"
WScript.echo \"droit d'écriture\"
MonFic.writeLine \"" & "X" & ", \"
MonFic.writeLine \"" & "X" & ", \"
MonFic.writeLine \"" & "X" & ", \"
MonFic.writeLine \"" & "X" & ", \"
MonFic.writeLine \"" & "-" & ", \"
MonFic.writeLine \"----
\"
Else If Instr(droits,\"(accŠs sp‚cialÿ:)\") <> 0 Then
Wscript.echo \"On doit aller voir plus loin\"
End If
End If
End If
'pas ligne normale donc soit ligne utilisateur sup. soit ligne de droits
Else
'ligne utilisateur sup.
If Instr(Ligne,\"\\") Then
MonFic.writeLine \"\"
MonFic.writeLine \"----
\"
'nous traitons donc le cas même chemin que le précédent
MonFic.writeLine \"" & chemin & ", \"
WScript.echo \"C'est une ligne pour un nouvel utilisateur\"
Ligne=sansEspaces(Ligne)
Util=motChoisi(motChoisi(Ligne,\"\\",2),\":\",1)
MonFic.writeLine \"" & util & ", \"
domaineEtUtil=motChoisi(reste,\":\",1)
droits = right(reste,len(Ligne)-len(domaineEtUtil)-1)
WScript.echo \"droits et nouvelles regles pour \" & Util
WScript.echo \"droits \" & droits
If Instr(Ligne,\"F\") <> 0 Then
Wscript.echo \"possede tous les droits\"
MonFic.writeLine \"" & "X" & ", \"
MonFic.writeLine \"" & "X" & ", \"
MonFic.writeLine \"" & "X" & ", \"
MonFic.writeLine \"" & "X" & ", \"
MonFic.writeLine \"" & "X" & ", \"
Else If Instr(Ligne,\"C\") <> 0 Then
MonFic.writeLine \"" & "X" & ", \"
MonFic.writeLine \"" & "X" & ", \"
MonFic.writeLine \"" & "X" & ", \"
MonFic.writeLine \"" & "X" & ", \"
MonFic.writeLine \"" & "-" & ", \"
WScript.echo \"ne possèdent pas tous les droits\"
Wscript.echo \"droit de modification\"
WScript.echo \"droit de lecture\"
WScript.echo \"droit d'écriture\"
Else If Instr(Ligne,\"(accŠs sp‚cialÿ:)\") <> 0 Then
'le GUID permet de faciliter la mise en page du tableau HTML
'code : si présent 1 si non présent : 0
'lecture ecriture modification execution appropriation
' 1 1 1 1 1
GUID = 0
'Wscript.echo \"On doit aller voir plus loin\"
End If
End If
End If
'ligne de droits
Else
Ligne=sansEspaces(Ligne)
analyseDroits(Ligne)
End If
End If
End Sub
Function sansEspaces(mot)
Do While left(mot,1) = \" \"
mot=right(mot,len(mot)-1)
Loop
sansEspaces=mot
End Function
'Récapitulatif des droits dont nous avons besoin
'+controle total : F
'-controle total: C
'+lecture : READ_CONTROL
'+ecriture: FILE_WRITE_DATA
'+executer: FILE_EXECUTE
'changement appropriation: WRITE_OWNER
Sub analyseDroits(Ligne)
If Ligne = \"READ_CONTROL\" Then
WScript.echo \"vous avez les droits de lecture\"
GUID = GUID + 10000
End If
If Ligne = \"FILE_WRITE_DATA\" Then
Wscript.echo \"Vous avez le droit d'écriture\"
GUID = GUID + 01000
End If
If Ligne = \"DELETE\" Then
WScript.echo \"vous avez le droit d'appropriation\"
GUID = GUID + 00100
End If
If Ligne = \"FILE_EXECUTE\" Then
WScript.echo \"Vous avez le droit d'execution\"
GUID = GUID + 00010
End If
If Ligne = \"WRITE_OWNER\" Then
WScript.echo \"vous avez le droit d'appropriation\"
GUID = GUID + 00001
End If
analyseGUID GUID
End Sub
Sub analyseGUID(nombre)
chiffre1 = mid(GUID, 1,1)
chiffre2 = mid(GUID, 2,1)
chiffre3 = mid(GUID, 3,1)
chiffre4 = mid(GUID, 4,1)
chiffre5 = mid(GUID, 5,1)
If chiffre1=\"1\" Then
MonFic.writeLine \"" & "X" & ", \"
Else MonFic.writeLine \"" & "-" & ", \"
End If
If chiffre2=\"1\" Then
MonFic.writeLine \"" & "X" & ", \"
Else MonFic.writeLine \"" & "-" & ", \"
End If
If chiffre3=\"1\" Then
MonFic.writeLine \"" & "X" & ", \"
Else MonFic.writeLine \"" & "-" & ", \"
End If
If chiffre4=\"1\" Then
MonFic.writeLine \"" & "X" & ", \"
Else MonFic.writeLine \"" & "-" & ", \"
End If
If chiffre5=\"1\" Then
MonFic.writeLine \"" & "X" & ", \"
Else MonFic.writeLine \"" & "-" & ", \"
End If
MonFic.writeLine \"\"
End Sub
'cloture du tableau et du fichier HTML
MonFic.writeLine "
"
MonFic.writeLine ""
MonFic.writeLine "</HTML>"
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 18 sept. 2007 à 18:46
Bonsoir,
J'ai un doute sur cette syntaxe:
'__________________________Ecrire d'un fichier_______________________________
Dim FSys, MonFic
FSys = CreateObject("Scripting.FileSystemObject")
MonFic = FSys.CreateTextFile("C:\droits.html")
'cette fonction permet de ne pas écraser ce qui avait écrit précédement dans le fichier
Sub MonFic.writeLine(chaine)
Set FSys = CreateObject("Scripting.FileSystemObject")
Set f = FSys.OpenTextFile("C:\droits.html",8)
With f
MonFic.writeLine chaine
End With
End Sub
befadudesert
Messages postés17Date d'inscriptionjeudi 22 février 2007StatutMembreDernière intervention28 janvier 2008 19 sept. 2007 à 10:31
Bonjour,
oui c'est du aux nombreux tests que j'ai réalisés.
La fonction est ecrireDansFichier(chaine) et partout ou il y a MonFic.writeLine il faut le remplacer par ecrireDansFichier.