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

VBScript Discussion :

Accorder les droits sur dossier sous-dossier


Sujet :

VBScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 198
    Points : 102
    Points
    102
    Par défaut Accorder les droits sur dossier sous-dossier
    Bonjour

    J'ai la configuration suivante :

    Un dossier DIFFUSION et deux sous dossiers INV et DRH

    Comment peux-t-on attribuer les droits en lecture au dossier DIFFUSION
    pour l'utilisateur USER1 et les droits en lecture sur le sous-dossier INV pour l'utilisateur USER1 et ne pas attribuer de droits sur le sous-dossier DRH


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Option Explicit
    Dim strHomeFolder, strHome, strUser
    Dim intRunError, objShell, objFSO
     
     
    strHomeFolder = "E:\DIFFUSION\INV"
     
     
     
    Set objShell = CreateObject("Wscript.Shell")
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    If objFSO.FolderExists(strHomeFolder) Then
     
     
    '''''''''''''''''''''''''''''''''''''''''''''
    'ATTRIBUTION DES DROITS D ACCES  ''''''''''''
    '''''''''''''''''''''''''''''''''''''''''''''
     
    intRunError = objShell.Run("%COMSPEC% /c Echo Y| cacls " _
    & strHomeFolder & " /e /g user1:r ", 2, True)
       If intRunError <> 0 Then
       Wscript.Echo "Error assigning permissions for user " _
       & strUser & " to home folder " & strHomeFolder
       End If
    End If
    Ce code n'attribue pas les droits

    Merci pour vos réponses

  2. #2
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut

    J'ai ajouté quelques fonctions pour le test chez-moi tout en espérant qu'il va marcher chez-vous
    Donc, moi je l'ai testé sur strHomeFolder = "c:\DIFFUSION\INV" donc j'ai utilisé une fonction pour créer l’arborescence "c:\DIFFUSION\INV" avec la fonction SmartCreateFolder(strFolder) et ça marche pour moi avec ce Script
    Remarque : Testé sur Windows XP SP 3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    Dim strHomeFolder, strHome, strUser
    Dim intRunError, objShell, objFSO
    strHomeFolder = "c:\DIFFUSION\INV"
    Set objShell = CreateObject("Wscript.Shell")
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    SmartCreateFolder strHomeFolder ' Creation de l'arborecence des dossiers
    If objFSO.FolderExists(strHomeFolder) Then
    '''''''''''''''''''''''''''''''''''''''''''''
    'ATTRIBUTION DES DROITS D'ACCES  ''''''''''''
    '''''''''''''''''''''''''''''''''''''''''''''
    Set Ws = CreateObject("WScript.Shell")
    Set ProcessEnv = Ws.Environment("Process")
     NomMachine = ProcessEnv("COMPUTERNAME")
     NomUtilisateur = ProcessEnv("USERNAME") 
    Command = "%COMSPEC% /C Echo o| cacls " & strHomeFolder & " /g " & qq(NomUtilisateur) & ":r"
    intRunError = objShell.Run(Command,0,True)
       If intRunError <> 0 Then
       MsgBox "Permission du l'utilisateur : " & qq(NomUtilisateur) & " dans le dossier " & qq(strHomeFolder) & " est non fait",16,"Permission sur le dossier non fait"
       else
       MsgBox "Permission du l'utilisateur " & qq(NomUtilisateur) & " dans le dossier " & qq(strHomeFolder) & " est effecuté avec succées :(Lecture Seule)!",64,"Permission dans le dossier " & qq(strHomeFolder) & " effectuée avec succées :(Lecture Seule)!"
       End If
    End If
     
    Sub SmartCreateFolder(strFolder)
          Dim oFSO:Set oFSO = CreateObject("Scripting.FileSystemObject")
          If oFSO.FolderExists(strFolder) Then
              Exit Sub
          Else
              SmartCreateFolder(oFSO.GetParentFolderName(strFolder))
          End If
          oFSO.CreateFolder(strFolder)
          Set oFSO = Nothing    
      End Sub
     
    Function qq(strIn)
        qq = Chr(34) & strIn & Chr(34)
    End Function

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 198
    Points : 102
    Points
    102
    Par défaut re
    bonjour
    Merci pour ta réponse
    Je teste et te tiens au courant

  4. #4
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut

    Vous pouvez tester ce script aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    Dim INV_Folder, strHome, strUser
    Dim intRunError, objShell, objFSO
    DIFFUSION_Folder = "c:\DIFFUSION"
    INV_Folder = "c:\DIFFUSION\INV"
    DRH_Folder = "c:\DIFFUSION\DRH"
    Set objShell = CreateObject("Wscript.Shell")
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    SmartCreateFolder INV_Folder ' Creation de l'arborecence des dossiers
    SmartCreateFolder DRH_Folder
    If objFSO.FolderExists(INV_Folder) Then
    '''''''''''''''''''''''''''''''''''''''''''''
    'ATTRIBUTION DES DROITS D'ACCES  ''''''''''''
    '''''''''''''''''''''''''''''''''''''''''''''
    'Permission de Lecture Seule pour l'utilisateur en cours sur le sous-dossier "c:\DIFFUSION\INV"
    Set Ws = CreateObject("WScript.Shell")
    Set ProcessEnv = Ws.Environment("Process")
     NomMachine = ProcessEnv("COMPUTERNAME")
     NomUtilisateur = ProcessEnv("USERNAME") 
    Command = "%COMSPEC% /C Echo o| cacls " & INV_Folder & " /g " & qq(NomUtilisateur) & ":r"
    intRunError = objShell.Run(Command,0,True)
       If intRunError <> 0 Then
       MsgBox "Permission du l'utilisateur " & qq(NomUtilisateur) & " dans le dossier " & qq(INV_Folder) & " est non fait",16,"Permission sur le dossier non fait"
       else
       MsgBox "Permission du l'utilisateur " & qq(NomUtilisateur) & " dans le dossier " & qq(INV_Folder) & " est effecuté avec succées :(Lecture Seule)!",64,"Permission dans le dossier " & qq(INV_Folder) & " effectuée avec succées :(Lecture Seule) !"
       End If
    End If
    'Permission d'accés Refusé pour l'utilisateur en cours sur le sous-dossier "c:\DIFFUSION\DRH" 
    If objFSO.FolderExists(DRH_Folder) Then
    Command = "%COMSPEC% /C Echo o| cacls " & DRH_Folder & " /p " & qq(NomUtilisateur) & ":n"
    intRunError = objShell.Run(Command,0,True)
       If intRunError <> 0 Then
       MsgBox "Permission du l'utilisateur " & qq(NomUtilisateur) & " dans le dossier " & qq(DRH_Folder) & " est non fait",16,"Permission sur le dossier non fait"
       else
       MsgBox "Permission du l'utilisateur " & qq(NomUtilisateur) & " dans le dossier " & qq(DRH_Folder) & " est effecuté avec succées :(Lecture Seule)!",64,"Permission dans le dossier " & qq(DRH_Folder) & " effectuée avec succées : (Accées Refusé) !"
       End If
    End If
    'Permission de Lecture Seule pour l'utilisateur en cours sur le sous-dossier "C:\DIFFUSION" 
    If objFSO.FolderExists(DIFFUSION_Folder) Then
    Command = "%COMSPEC% /C Echo o| cacls " & DIFFUSION_Folder & " /g " & qq(NomUtilisateur) & ":r"
    intRunError = objShell.Run(Command,0,True)
       If intRunError <> 0 Then
       MsgBox "Permission du l'utilisateur " & qq(NomUtilisateur) & " dans le dossier " & qq(DIFFUSION_Folder) & " est non fait",16,"Permission sur le dossier non fait"
       else
       MsgBox "Permission du l'utilisateur " & qq(NomUtilisateur) & " dans le dossier " & qq(DIFFUSION_Folder) & " est effecuté avec succées :(Lecture Seule)!",64,"Permission dans le dossier " & qq(DIFFUSION_Folder) & " effectuée avec succées : (Lecture Seule) !"
       End If
    End If
     
    Sub SmartCreateFolder(strFolder)
          Dim oFSO:Set oFSO = CreateObject("Scripting.FileSystemObject")
          If oFSO.FolderExists(strFolder) Then
              Exit Sub
          Else
              SmartCreateFolder(oFSO.GetParentFolderName(strFolder))
          End If
          oFSO.CreateFolder(strFolder)
          Set oFSO = Nothing    
      End Sub
     
    Function qq(strIn)
        qq = Chr(34) & strIn & Chr(34)
    End Function

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 198
    Points : 102
    Points
    102
    Par défaut re
    Bonjour

    Merci pour tes réponses et ton investissement
    Cela correctement correctement
    J'ai opté pour le dernier script
    Je te suis trés reconnaissant
    Bonne journée

  6. #6
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut
    Citation Envoyé par qmike Voir le message
    Merci pour tes réponses et ton investissement
    Cela correctement correctement
    J'ai opté pour le dernier script
    Je te suis trés reconnaissant
    Bonne journée
    Pas de Quoi et Avec un grand plaisir
    Bonne Programmation

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.2] accorder les droits d'accès sous windows
    Par amnay dans le forum Langage
    Réponses: 3
    Dernier message: 26/07/2012, 11h57
  2. Réponses: 4
    Dernier message: 18/04/2012, 11h43
  3. [XL-2010] Tester si un utilisateur à les droits sur un dossier
    Par Destiny dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/01/2012, 11h58
  4. les droites sur image sous matlab
    Par zinette dans le forum Images
    Réponses: 3
    Dernier message: 07/04/2010, 15h20
  5. API connaitre les droits sur un fichier/dossier
    Par cerede2000 dans le forum Windows
    Réponses: 9
    Dernier message: 27/10/2008, 15h17

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