Droits W Seven

Signaler
Messages postés
163
Date d'inscription
samedi 19 janvier 2008
Statut
Membre
Dernière intervention
26 août 2014
-
salut les gars
j'ai toujours pas réussi a forcer le changement des droits sur Windows Seven
quelqu’un peux me donner une idée ?
je rapelle que j'ai essayé avec ce code sa a lair de fonctionner mai ya rien qui change méme quand je change
objInParam.Option

voila le code :
Private Sub Form_Load()
'Changement permision sur le fichier a recuperer

Dim objLocator: Set objLocator = CreateObject("wbemscripting.swbemlocator")

Dim objServices: Set objServices = objLocator.ConnectServer("")
objServices.security_.privileges.AddAsString ("SeSecurityPrivilege")

Dim StrNomFichier
StrNomFichier = "c:\test\test.txt"

Dim FilePath: FilePath = StrRepPath & StrNomFichier

Dim objSecDescriptor: Set objSecDescriptor = GetObject("Winmgmts:{impersonationlevel=impersonate}!root/cimv2:Win32_SecurityDescriptor").Spawninstance_()

objSecDescriptor.ControlFlags = 32772

''allow everyone
Dim ACE1: Set ACE1 = SetACE(1245631, 3, 0, SetTrustee(vbNull, "Everyone", Array(1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0)))

''allow admin full access
Dim ACE2: Set ACE2 = SetACE(2032127, 3, 0, SetTrustee(vbNull, "Administrators", Array(1, 2, 0, 0, 0, 0, 0, 5, 32, 0, 0, 0, 32, 2, 0, 0)))

objSecDescriptor.DACL = Array(ACE1, ACE2)

Dim obj: Set obj = objServices.Get("CIM_DataFile='" & FilePath & "'")

Dim objClass: Set objClass = objServices.Get("CIM_DataFile")
Dim objInParam: Set objInParam = obj.Methods_("ChangeSecurityPermissions").inParameters.Spawninstance_()

objInParam.Option = 4 ''DACL
objInParam.SecurityDescriptor = objSecDescriptor

Dim objOutParams: Set objOutParams = obj.ExecMethod_("ChangeSecurityPermissions", objInParam)
End Sub
Function SetTrustee(strDomain, strName, SID)
     Dim objTrustee: Set objTrustee = GetObject("Winmgmts:{impersonationlevel=impersonate}!root/cimv2:Win32_Trustee").Spawninstance_
     objTrustee.Domain = strDomain
     objTrustee.Name = strName
     objTrustee.SID = SID
     Set SetTrustee = objTrustee
End Function

Function SetACE(AccessMask, AceFlags, AceType, objTrustee)
  Dim objACE: Set objACE = GetObject("Winmgmts:{impersonationlevel=impersonate}!root/cimv2:Win32_Ace").Spawninstance_
  objACE.AccessMask = AccessMask
  objACE.AceFlags = AceFlags
  objACE.AceType = AceType
  objACE.Trustee = objTrustee
  Set SetACE = objACE
End Function

j'ai changer les droits d'un ficher test.txt mai quand je veux autoriser a tout le monde ('allow everyone) sa marche pas pouvez vous m'aider sil vous plais