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 :

script vbs pour gérer les autorisation de partage


Sujet :

VBScript

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut script vbs pour gérer les autorisation de partage
    bonjour,
    je débute en VBscript, je viens de créer un script pour le partage de dossier, jusque là tout va bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set objNewShare = objWMIService.Get("Win32_Share")
    Chemin="K:\mondossier"
    errReturn = objNewShare.Create _
    (Chemin, "mondossier$", FILE_SHARE, _
    MAXIMUM_CONNECTIONS, "Mon dossier")
    le partage se fait bien.

    Maintenant, j'aimerais rajouter une ligne pour gérer les autorisations de partage.
    J'ai bien cherché mais je ne trouve que des scripts pr géré les droits NTFS via la commande CACLS.
    Hors ce qui m'interresse c'est de mettre le mode lecture seule à l'utilisateur "tout le monde" dans les autorisations de partage comme c'est le cas en mode manuel. Lorsqu'on partage un dossier via clic droit "partage et sécurité" du dossier, par défaut il met bien lecture seule.
    Pourquoi ce n'est pas la meme chose via le script, est ce quelqu'un pourrait m'aider ?
    merci d'avance

  2. #2
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    Salut Blackout26,

    Je ne repond pas à ta question (pas bcp de temps ce midi dsl) mais je vais plutot te donner un conseil concernant les droits NTFS.
    Tu aura certainement besoin de gerer les droits NTFS, si tel est le cas je te conseille vivement ICACLS plutot que cals.

    Exemple :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim Act : Set Act = CreateObject("Wscript.Shell")
     
    Act.Run("icacls "  & Chr(34) & Ton Chemin & Chr(34) & " /grant " & Chr(34) & Ton Utilisateur & Chr(34) & ":(OI)(CI)(RC,RD,WD,AD,REA,WEA,X,DC,RA,WA) /T /C"),7,True

    Il sait gerer toutes les complexité aux niveau des droits avancés.

    Ca peut toujours servir si tu souhaite avoir des droits un peu plus poussés


    A toi de trouver les differentes syntaxe apres

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Solution
    La solution complète pour créer un dossier, le partager et donner les droits est ci-dessous :

    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    '================================================= 
    '================================================= 
    Dim Services,DescDeSec, ClasSec, PourQui
    Dim ACE, InParam, Cher
    Dim FSO, ObjShell
    Dim CheminPartage, NomPartage, Description
     
    CheminPartage = "D:\OrdisDom"    
    NomPartage = "OrdisDom"
    Description = "Pour Ordis du Dom."
     
    ' ================================== 
    ' Creer le Nouveau répertoire
    ' ==================================
    Set FSO = CreateObject("Scripting.FileSystemObject")
    If not FSO.FolderExists(CheminPartage) then
    FSO.CreateFolfer(CheminPartage)
    End If
    Set FSO = Nothing
     
    ' ================================== 
    ' Objet 
    ' ==================================
    ' Strcomputer = "." si c'est l'ordinateur local ou vous pouvez mettre le nom de l'ordinateur en clair.
    strComputer = "Nom de l'ordinateur"
     
    Set objWMIService = GetObject("winmgmts:" _
    	    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
     
    ' ================================== 
    ' Prépare un Descripteur De Securité
    ' pour donner les droits d'accès au partage 
    ' ==================================
    Set ClasSec = Services.Get("Win32_SecurityDescriptor")
    Set DescDeSec = ClasSec.SpawnInstance_()
     
    ' Qui est concerné
    Set PourQui = _
    Services.Get("Win32_Trustee").SpawnInstance_
     
    PourQui.Domain = Null
    PourQui.Name = "TOUT LE MONDE"
    PourQui.Properties_.Item("SID") = _
    Array(1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0)
     
    Set ACE = Services.Get("Win32_Ace").SpawnInstance_
     
    ' Contrôle Total
    ACE.Properties_.Item("AccessMask") = 2032127
     
    ' héritage aux objets et conteneurs
    ACE.Properties_.Item("AceFlags") = 3
     
    ACE.Properties_.Item("AceType") = 0
     
    ' Qui est concerné : Défini plus haut
    ACE.Properties_.Item("Trustee") = PourQui
     
    ' puisque DACL est défini ...
    DescDeSec.Properties_.Item("ControlFlags") = 4
     
    ' fin de la préparation du descripteur de sécurité
    DescDeSec.Properties_.Item("DACL") = Array(ACE)
     
    ' ================================== 
    ' Création du Partage (enfin)
    ' ================================== 
    Set Cher = Services.Get("Win32_Share")
     
    Set InParam = _
    Cher.Methods_("Create").InParameters.SpawnInstance_()
     
    InParam.Properties_.Item("Access") = DescDeSec
    InParam.Properties_.Item("Description") = Description
    InParam.Properties_.Item("Name") = NomPartage
    InParam.Properties_.Item("Path") = CheminPartage
     
    ' Type de partage : Répertoire ou fichier : 0 pour dossier
    InParam.Properties_.Item("Type") = 0
     
    ' Nombre de Connexions simultanées permises sur le partage
    InParam.Properties_.Item("MaximumAllowed") = 1
     
    On error Resume next
    Cher.ExecMethod_ "Create", InParam
     
    If err<>0 then
       Msgbox "Echec de la création du partage"
    End if
    On error Goto 0
     
    Set Services = Nothing
    Set DescDeSec = Nothing
    Set ClasSec = Nothing
    Set PourQui = Nothing
    Set ACE = Nothing
    Set InParam = = Nothing
    set Cher = Nothing
     
    ' ================================== 
    ' infos dans onglet Sécurité ...
    ' Permet de données les droits aux données du dossier
    ' ================================== 
    Set ObjShell = WScript.CreateObject ("WSCript.shell")
     
    Commande = "CACLS " & CheminPartage _
    & " /E " _
    & "/G ""Ordinateurs du domaine"":R"
     
    Retour = objShell.Run( _
    "%COMSPEC% /c Echo Y| " & Commande, 2, True)
     
    If Retour <> 0 then
       Msgbox "Problème pour CACLS"
    End if
     
    Set ObjShell = Nothing

Discussions similaires

  1. Script pour gérer les sessions utilisateurs sous Ubuntu
    Par thucydide dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 08/06/2012, 11h51
  2. [WS 2008] script vbs pour modifier les parametres de firefox
    Par tickerdu22 dans le forum Windows Serveur
    Réponses: 5
    Dernier message: 22/02/2012, 12h12
  3. Script VBS pour modifier les options Internet
    Par rjl dans le forum Windows XP
    Réponses: 9
    Dernier message: 26/11/2009, 18h50
  4. Script vbs pour modifier les paramètres du Proxy
    Par momo187 dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 09/11/2009, 11h20
  5. Méthode simple pour gérer les collisions
    Par Hyoga dans le forum OpenGL
    Réponses: 2
    Dernier message: 19/02/2005, 13h43

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