ConvertStringSidToSid

C# Signature:

[DllImport("advapi32.dll", SetLastError=true)]
static extern bool ConvertStringSidToSid(
            string StringSid,
            out IntPtr ptrSid
            );

VB Signature:

Private Declare Auto Function ConvertStringSidToSid Lib "advapi32.dll" (StringSid As String, ByRef ptrSid As IntPtr) As Boolean

C#.Net Sample Code:

ManagementBaseObject Descriptor = null;
    ManagementObjectCollection UserSearch = new ManagementObjectSearcher("Select * From Win32_LogicalFileSecuritySetting Where Path='" + FromPath + "'").Get();
    try
    {
        foreach(ManagementObject UserObject in UserSearch)
        { 
            ManagementBaseObject inParams1 = UserObject.GetMethodParameters("GetSecurityDescriptor"); 
            ManagementBaseObject outParams1 = UserObject.InvokeMethod("GetSecurityDescriptor", inParams1, null); 
            Descriptor = ((ManagementBaseObject)(outParams1.Properties["Descriptor"].Value)); 
        }
    }
    catch (Exception se)
    {
        Trace.WriteLine(se.Message);
    }

    ManagementObject Share = new ManagementObject("Win32_Directory='" + ToPath + "'"); 
    ManagementBaseObject inParams = Share.GetMethodParameters("ChangeSecurityPermissions"); 

    inParams["Option"] = 4; 
    inParams["SecurityDescriptor"] = Descriptor; 

    ManagementBaseObject outParams = Share.InvokeMethod("ChangeSecurityPermissions", inParams, null);

C#.Net Sample Code:

Última actualización