Dear Perl experts,

I am trying to convert following WMI VB example to perl !

I am facing problem in set setting SID parameter for object Win32_Trustee

class Win32_Trustee : Win32_MethodParameterClass
{
  string Domain;
  string Name;
  uint8 SID[];
  uint32 SidLength;
  string SIDString;
};

How to get the parameter SID for a user in a domain ?

I can get parameter SIDString for a user, but not able to get it as uint8
array !!


Please Help !!


    Set objservices = GetObject("WINMGMTS:" _
                              &
"{impersonationLevel=impersonate,(Security)}" _
                              & "!\\myserver\ROOT\CIMV2")

    Set objclass = objservices.Get("Win32_SecurityDescriptor")
    Set objSecDescriptor = objclass.SpawnInstance_()
    
    objSecDescriptor.Properties_.Item("ControlFlags") = 4
    Set ACE1 = SetACE(objservices, 2032127, _
                      3, _
                      0, _
                      SetTrustee(objservices, "myserver", _
                                 "user1", _
                                 Array(1, 5, 0, 0, 0, 0, 0, 5, 21, _
                                       0, 0, 0, 160, 101, 207, 126, _
                                       120, 75, 155, 95, 231, 124, _
                                       135, 112, 119, 238, 0, 0)))
    
    Set ACE2 = SetACE(objservices, 2032127, _
                      3, _
                      0, _
                      SetTrustee(objservices, Null, _
                                 "EVERYONE", _
                                  Array(1, 1, 0, 0, 0, 0, 0, 1, 0, _
                                        0, 0, 0)))
    
    
    objSecDescriptor.Properties_.Item("DACL") = Array(ACE1, ACE2)
    
    
'************************* HELPER FUNCTIONS *********************
Function SetTrustee(objservices, strDomain, strName, SID)
     Set objTrustee = objservices.Get("Win32_Trustee").SpawnInstance_
     objTrustee.Domain = strDomain
     objTrustee.Name = strName
     objTrustee.Properties_.Item("SID") = SID
     Set SetTrustee = objTrustee
End Function

Function SetACE(objservices, AccessMask, AceFlags, AceType, objTrustee)
     Set objAce = objservices.Get("Win32_Ace").SpawnInstance_
     objAce.Properties_.Item("AccessMask") = AccessMask
     objAce.Properties_.Item("AceFlags") = AceFlags
     objAce.Properties_.Item("AceType") = AceType
     objAce.Properties_.Item("Trustee") = objTrustee
     Set SetACE = objAce
End Function



With Best Regards,


V.S. Jangale

_______________________________________________
Perl-Win32-Admin mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to