Bonjour.
Après plusieurs recherches, j'en suis arrivé à cela:
'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 StrRepPath = "d:\test\"
Dim StrNomFichier = "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)
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
Le problème que j'ai est que cela fonctionne sur mon poste en windows 2000 Pro mais cela ne fonctionne pas sur du windows 2003 serveur.
Quelqu'un aurait-il une idée d'où cela pourrait venir?
Merci.
Bonne journée.