Ejemplo n.º 1
0
 internal static extern Int32 NetLocalGroupAddMembers(
     [MarshalAs(UnmanagedType.LPWStr)] string servername,
     [MarshalAs(UnmanagedType.LPWStr)] string localgroupname,
     int level,
     ref LOCALGROUP_MEMBERS_INFO_0 newMembers,
     int totalentries
     );
Ejemplo n.º 2
0
        public void RemoveFromLocalGroup(string groupName)
        {
            var sidBytes = new byte[Sid.BinaryLength];

            Sid.GetBinaryForm(sidBytes, 0);

            var info3 = new LOCALGROUP_MEMBERS_INFO_0
            {
                pSID = Marshal.AllocHGlobal(sidBytes.Length)
            };

            try
            {
                Marshal.Copy(sidBytes, 0, info3.pSID, sidBytes.Length);

                var result = NetLocalGroupDelMembers(null, groupName, 0, ref info3, 1);
                if (result == Win32ErrorCodes.NERR_Success || result == Win32ErrorCodes.MemberNotInAlias)
                {
                    return;
                }
                throw new Win32Exception(result);
            }
            finally
            {
                Marshal.FreeHGlobal(info3.pSID);
            }
        }
Ejemplo n.º 3
0
 private static extern int NetLocalGroupDelMembers(
     string servername,                 //server name
     string groupname,                  //group name
     UInt32 level,                      //info level
     ref LOCALGROUP_MEMBERS_INFO_0 buf, //Group info structure
     UInt32 totalentries                //number of entries
     );
Ejemplo n.º 4
0
 internal static extern NET_API_STATUS NetLocalGroupGetMembers(
     string servername,
     string localgroupname,
     int level,
     ref LOCALGROUP_MEMBERS_INFO_0 bufptr,
     int prefmaxlen,
     ref int entriesread,
     ref int totalentries,
     ref IntPtr resumehandle);
 internal static extern NetUserRetEnum NetLocalGroupAddMembers(
     string Servername,
     string Groupname,
     uint Level,
     ref LOCALGROUP_MEMBERS_INFO_0 Buf,
     uint Totalentries);
 internal static extern NetUserRetEnum NetLocalGroupAddMembers(
     string Servername,
     string Groupname,
     uint Level,
     ref LOCALGROUP_MEMBERS_INFO_0 Buf,
     uint Totalentries);
Ejemplo n.º 7
0
 public static extern NET_API_STATUS NetLocalGroupDelMembers([MarshalAs(UnmanagedType.LPWStr)] string psServer, [MarshalAs(UnmanagedType.LPWStr)] string psLocalGroup, int lLevel, ref LOCALGROUP_MEMBERS_INFO_0 uMember, int lMemberCount);