Créer un Security Descriptor pour Win32_Share.Create

Signaler
-
Bonjour à tous,

J'ai un programme qui tourne sur Windows Server 2003 et qui met en place un partage de fichier grâce aux commandes suivantes :

Dim objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
Dim objNewShare = objWMIService.Get("Win32_Share")
'...
Try

err = objNewShare.Create(dossier_travail_eleves, "Eleves$", 0, True, "Répertoire personnel des élèves")
log(Chr(9) & Chr(9) & "€ Partage du repertoire Eleves")

Catch ex As Exception
log("ERROR : lors du partage des répertoires de base : " & ex.Message)
End Try

Sur WS 2003 ceci créé bien le partage est accorde les droits en Lecture et Ecriture à 'Tout le monde'


Le même code sous WS 2008 R2 créé le partage mais n'attribut que Lecture au groupe 'Tout le monde'. Ceci est noramal au vu http://msdn.microsoft.com/en-us/library/windows/desktop/aa389393(v=vs.85).aspx :

Access [in]
Security descriptor for user level permissions. A security descriptor contains information about the permissions, owner, and access capabilities of the resource. If this parameter is not supplied or is NULL, then Everyone has read access to the share. For more information, see Win32_SecurityDescriptor and Changing Access Security on Securable Objects.

Le paramètre Access de la fonction Create n'étant pas renseigné, seul les droit de Lecture sont mis en place par défaut. Pour renseigné cet argument, il faut un objet de type DecurityDescriptor.


Ma question est simple, comment puis je créer un tel objet, spécifiant qu'il doit mettre les droits Lecture et Ecriture au groupe Tout le monde.


J'ai bien cherché sur le net, mais je ne rien trouvais de très concret.

Merci d'avance, bonne journée.