IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Boucle pour lister les droits de tous les répertoires


Sujet :

Scripts/Batch

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 94
    Points : 55
    Points
    55
    Par défaut Boucle pour lister les droits de tous les répertoires
    Bonjour à tous,

    Je me casse les dents sur un truc simple....donc je viens chercher de l'aide.
    Je cherche à lister tous les répertoires d'un disque dans un premier temps, puis de récupérer leurs droits associés dans un fichier.
    Il me créé bien mon fichier ACLSave_tmp contenant les répertoires, il me créé bien mon fichier ACLSave_tp contenant les ACL du répertoire correspondant à la ligne du for mais je n'ai rien dans ma variable %%a donc rien dans ACLSave_tst...il ne me créé même pas le fichier d'ailleurs :/
    Enfin bon je comprends pas pourquoi ca ne fonctionne pas.
    Je suis pas très calé en batch mais bon...je vois pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dir/A:D/B/S > ACLSave_tmp
    for /f %%i in (ACLSave_tmp) do (
        icacls %%i /save ACLSave_tp
        for /f %%a in (ACLSave_tp) do (echo %%a >> ACLSave_tst)
    )
    Le but étant de récupérer les droits associés à tous les répertoires et sous-répertoires (et uniquement les répertoire, pas les fichiers) d'un disque dans un fichier

    Merci d'avance pour votre aide

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 94
    Points : 55
    Points
    55
    Par défaut
    bon je viens de me rendre compte de quelque chose...
    quand je fais un edit du fichier ACLSave_tp, je me retrouve avec un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      E S T
     D : A I ( A ; O I C I I D ; F A ; ; ; B A ) ( A ; O I C I I O I D ; F A ; ; ; C O ) ( A ;
     O I C I I D ; 0 x 1 3 0 1 b f ; ; ; S - 1 - 5 - 2 1 - 2 1 8 9 4 1 4 5 1 6 - 3 4 6 7 4 8 0
     7 0 0 - 2 4 9 2 4 6 8 8 2 5 - 3 8 0 5 ) ( A ; O I C I I D ; 0 x 1 3 0 1 b f ; ; ; S - 1 -
     5 - 2 1 - 2 1 8 9 4 1 4 5 1 6 - 3 4 6 7 4 8 0 7 0 0 - 2 4 9 2 4 6 8 8 2 5 - 1 7 1 7 2 ) (
     A ; O I C I I D ; F A ; ; ; S Y )
    si j'édite le fichier en notepad et que je copie/colle le contenu dans un nouveau fichier text, j'obtiens avec l'edit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TEST
    D:AI(A;OICIID;FA;;;BA)(A;OICIIOID;FA;;;CO)(A;OICIID;0x1301bf;;;S-1-5-21-2189414516-3467480
    700-2492468825-3805)(A;OICIID;0x1301bf;;;S-1-5-21-2189414516-3467480700-2492468825-17172)(
    A;OICIID;FA;;;SY)
    et là tout fonctionne.... je comprends pas pourquoi icacls me renvoi un fichier comme ca alors qu'en notepad, ya aucune différence....

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 94
    Points : 55
    Points
    55
    Par défaut
    bon je viens de me rendre compte d'un truc...
    icacls ne créé pas un fichier au format lambda
    le fichier créé est non modifiable :/
    je viens de tomber la-dessus
    De plus, la façon dont l’ACL est enregistré crée un problème intéressant. Avant d’ouvrir l’ACL enregistré dans votre éditeur de texte préféré, rappelez-vous de ne pas
    modifier votre ACL enregistré !
    Si vous deviez ouvrir le fichier contenant votre ACL enregistré dans un éditeur de texte, vous trouveriez qu’il s’agit d’un fichier texte formaté Unicode (UTF-16). En fait, c’est presque de cela qu’il s’agit. Ceci pourrait vous faire penser que vous pouvez le modifier et l’enregistrer à partir d’un éditeur de texte. Ne le faites pas !
    Si vous ouvrez le fichier qui contient les ACL enregistrés dans un éditeur de texte et l’enregistrez ensuite, vous ne pourrez pas restaurer les ACL à partir de ce fichier. En fait ce n’est pas un fichier texte Unicode. Ce fichier doit commencer avec les 2 octets 0xfffe. Si vous enregistrez le fichier avec un éditeur de texte, tel que le Bloc-notes, il mettra cet indicateur dans le fichier dans les deux premiers octets. Cependant, l’outil icacls.exe suppose que les données ACL démarrent à l’octet 0 dans le fichier. Par conséquent, l’outil ne pourra pas traiter les ACL dans le fichier comme il suppose que les deux premiers octets font partie de la chaîne spécifiant l’objet sur lequel effectuer les opérations. Votre fichier de sauvegarde sera inutilisable.
    Microsoft est conscient de ce problème, mais comme il n’a été signalé que très tard dans le cycle bêta pour Windows Vista, ce défaut n’a pas été corrigé avant la sortie. À ce stade, nous ne savons pas quand il sera corrigé, ni même s’il le sera. Donc pour le moment, le meilleur conseil est de ne pas modifier vos ACL enregistrés. Si vous avez besoin de le faire, enregistrez le fichier comme fichier .bin et utilisez un éditeur hexadécimal, comme par exemple votre environnement de développement préféré.
    donc bon j'ai plus qu'à laisser tomber :/
    merci quand même

  4. #4
    Membre averti

    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Décembre 2003
    Messages
    333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 333
    Points : 382
    Points
    382
    Billets dans le blog
    1
    Par défaut
    mmm, tu as 2 choix :

    A. Re-encoder ta sortie fichier selon ton but (en general c'est from UFTX to ANSI).
    B. Utiliser autre chose que ton utilitaire. En ligne de commande tu as cacls par defaut, subincal, tu peux creuser aussi côté sysinternal je suis sur que tu trouveras un truc pour dumper les ACLs, xcacls (un vbs made in Ms aussi).

    Bref, tu as pas mal de choix...

Discussions similaires

  1. [Batch] Connexion SFTP + download de tous les fichiers ET tous les répertoires
    Par gazza dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 06/03/2014, 13h45
  2. Réponses: 2
    Dernier message: 29/11/2011, 23h17
  3. lister tous les membres de tous les groupes AD
    Par fbb53 dans le forum VBScript
    Réponses: 1
    Dernier message: 03/10/2011, 11h24
  4. Réponses: 9
    Dernier message: 16/10/2006, 16h35
  5. Réponses: 1
    Dernier message: 19/08/2006, 10h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo