Auteur de questions
Vbsa intégrant xcacls.vbs

Question
-
Bonjour,
Je désire à partir d'une liste d'utilisateurs créer des dossiers en partage, jusqu'ici ça se passe bien avec ce que j'ai pu trouver sur le net. Mais maintenant j'aimerai changer les permissions sur le dossier pour supprimer "tout le monde" dans l'onglet sécurité et ajouter les utilisateurs "administrateur" et le "quidam" créer dans mes OU avec un autre script, cet user porte en fait le même nom que son dossier en partage.
J'ai vu qu'il fallait utiliser xcacls.vbs, je suis allé sur le site de microsoft mais ils ne l'utilise qu'en ligne de comande et moi j'aimerai insérer cette commande dans la routine du scritp ci-dessous :
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
On Error Resume Next
Const FILE_SHARE = 0
Const MAXIMUM_CONNECTIONS = 10Dim oFSO, oShell, oFichierCpt, NomFichierCpt, fichierExiste, Chemin
Dim nomFolder, ligne, tableau
Dim bjWMIService, objNewShareSet oFSO = CreateObject("Scripting.FileSystemObject")
Set oShell = CreateObject("WScript.Shell")strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objNewShare = objWMIService.Get("Win32_Share")'lecture du chemin pour la création des dossiers
chemin = InputBox("Entrez le chemin complet où seront créés les dossiers :", "")
'Lecture du fichier texte des comptesfichierExiste = 1
Do While fichierExiste = 1
nomFichierCpt = InputBox("Entrez le nom du fichier contenant les comptes :", "")
nomFichierCpt = ("D:\TestFolder\" & nomFichierCpt & ".txt")
If oFSO.FileExists(nomFichierCpt) Then
Set oFichierCpt = oFSO.OpenTextFile(nomFichierCpt)
fichierExiste = 0
Else
fichierExiste = 1
MsgBox "Ce fichier n'existe pas, recommencer !"
End If
Loop'Création des dossiers utilisateurs
CreerDossier()
Do Until oFichierCpt.AtEndOfStream
ligne = oFichierCpt.ReadLine
tableau = Split(ligne,",")
AjouterDossier tableau(2)
Loopmsgbox "Création des dossiers utilisateurs terminée !"
oFichierCpt.Close 'Fermeture du fichier des comptes
'Routine de creation des dossiersSub AjouterDossier(nomFolder)
oFSO.CreateFolder(chemin & "\" & nomFolder)
errReturn = objNewShare.Create _
("D:\TestFolder\" & nomFolder, nomFolder, FILE_SHARE, _
MAXIMUM_CONNECTIONS, "Commentaire")
Wscript.Echo errReturn/Je voudrais placer cette commande xcacls.vbs ici pour modifier les permissions au fur et à mesure de la création des dossiers, vu que le nom du dossier est le même que celui de l'utilisateur dans l'AD et est contenu dans "nomFolder"/
End Sub---------------------------------------------------------------------------------------------------------------------------------------------------------------------
Si quelqu'un a une solution pour intégrer cette commande merci d'avance, j'ai vu aussi qu'on pouvait utiliser subinacl.vbs, est-ce que c'est mieux adapté ? Rb
- Déplacé ashawani_dubey jeudi 4 février 2010 05:06 Forums Consolidation (Origine :Windows Server 2003 – Services réseaux)
jeudi 4 septembre 2008 12:56
Toutes les réponses
-
Bonjour,
A force de chercher et de tester j'ai trouvé sur le net quelques infos, voici la procédure avec Xcacls si elle peut servir pour d'autres.
Cordialement, Rb
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
'Routine de creation des dossiers et attribution des permissions
Sub AjouterDossier(nomFolder)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
oFSO.CreateFolder(chemin & "\" & nomFolder)
errReturn = objNewShare.Create _
(chemin & "\" & nomFolder, nomFolder, FILE_SHARE, _
MAXIMUM_CONNECTIONS, "Commentaire")
' Wscript.Echo errReturn
strCommand = chemin & "\" & nomFolder & " /T /G administrateurs:F " & nomFolder & ":M"
oShell.Run "cscript xcacls.vbs " & strCommand,0 '0 pour ne pas afficher la page invite de commande
End Sublundi 8 septembre 2008 07:55 -
Re,
Cette routine pour changer les permissions fonctionne très bien sur mon poste en Xp mais lorsque j'ai voulu la tester sur mon controleur de domaine en Win2003Server, ça ne fonctionne plus. Les dossiers sont bien créés là où je l'indique mais les permissions ne sont pas modifiées !!!!
Faut-il placer le chemin Ldap des utilisateurs dans la commande ? Ce n'est pourtant pas ce qui est indiqué dans la doc que j'ai pu trouver sur Xcacls.vbs.
Si quelqu'un a une idée sur ce qu'il faut modifier ? Merci d'avance, Rb
lundi 8 septembre 2008 14:52