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
|
Function CreateTrustee(ByVal userName, ByVal conteiner, ByVal domainName, ByVal subDomainName)
On Error Resume Next
'
' ...Initialisation de valeur a retourner...
'
Set CreateTrustee = Nothing
Dim objTrustee
Dim objUser
Dim objSid
Dim strDomain
'
' ...Si l'utilisateur est tous le monde...
'
If UCase(userName) = "EVERYONE" Then
objSid = Array(1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0)
Else
'
' ...On recupère l'objet SID de l'utilisateur...
'
Set objUser = GetObject("LDAP://CN=" & userName & ", CN=" & conteiner & ", DC=" & domainName & ", DC=" & subDomainName)
objSid = objUser.Get("ObjectSID")
End If
'
' ...On récupère l'objet trustee...
'
Set objTrustee = GetObject("Winmgmts:{impersonationlevel=impersonate}!root/cimv2:Win32_Trustee").SpawnInstance_
strDomain = domainName & "." & subDomainName
objTrustee.Domain = strDomain
objTrustee.Name = userName
objTrustee.Properties_.Item("SID") = objSid
'
' ...On renvoie l'objet créé...
'
Set CreateTrustee = objTrustee
'
' ...On détruit les objets...
'
Set objTrustee = Nothing
Set objUser = Nothing
Set objSid =Nothing
End Function |
Partager