public SamUserInformation( DateTime lastLogon, DateTime lastLogoff, DateTime passwordLastSet, DateTime accountExpires, DateTime passwordCanChange, DateTime passwordMustChange, string userName, string fullName, string adminComment, string userComment, int userId, int primaryGroupId, UserAccountFlags userFlags, bool passwordExpired ) { _lastLogon = lastLogon; _lastLogoff = lastLogoff; _passwordLastSet = passwordLastSet; _accountExpires = accountExpires; _passwordCanChange = passwordCanChange; _passwordMustChange = passwordMustChange; _userName = userName; _fullName = fullName; _adminComment = adminComment; _userComment = userComment; _userId = userId; _primaryGroupId = primaryGroupId; _userFlags = userFlags; _passwordExpired = passwordExpired; }
public static extern NtStatus SamEnumerateUsersInDomain( [In] IntPtr DomainHandle, ref int EnumerationContext, [In] UserAccountFlags UserAccountControl, [Out] out IntPtr Buffer, // SamRidEnumeration** [In] int PreferredMaximumLength, [Out] out int CountReturned );
public static extern NtStatus SamCreateUser2InDomain( [In] IntPtr DomainHandle, [In] ref UnicodeString AccountName, [In] UserAccountFlags AccountType, [In] SamUserAccess DesiredAccess, [Out] out IntPtr UserHandle, [Out] out SamUserAccess GrantedAccess, [Out] out int RelativeId );
public unsafe void SetFlags(UserAccountFlags flags) { UserAllInformation info = new UserAllInformation { WhichFields = UserWhichFields.UserAccountControl, UserAccountControl = flags }; this.SetInformation(UserInformationClass.UserAllInformation, new IntPtr(&info)); }
public void SetFlags(UserAccountFlags flags) { unsafe { UserAllInformation info = new UserAllInformation(); info.WhichFields = UserWhichFields.UserAccountControl; info.UserAccountControl = flags; this.SetInformation(UserInformationClass.UserAllInformation, new IntPtr(&info)); } }
public void EnumUsers(EnumUsersDelegate callback, UserAccountFlags flags) { NtStatus status; int enumerationContext = 0; IntPtr buffer; int count; while (true) { status = Win32.SamEnumerateUsersInDomain( this, ref enumerationContext, flags, out buffer, 0x100, out count ); if (status >= NtStatus.Error) { Win32.Throw(status); } if (count == 0) { break; } using (var bufferAlloc = new SamMemoryAlloc(buffer)) { for (int i = 0; i < count; i++) { var data = bufferAlloc.ReadStruct <SamRidEnumeration>(i); if (!callback(data.Name.Read(), data.RelativeId)) { return; } } } } }
public void EnumUsers(EnumUsersDelegate callback, UserAccountFlags flags) { int enumerationContext = 0; IntPtr buffer; int count; while (true) { Win32.SamEnumerateUsersInDomain( this, ref enumerationContext, flags, out buffer, 0x100, out count ).ThrowIf(); if (count == 0) { break; } using (SamMemoryAlloc bufferAlloc = new SamMemoryAlloc(buffer)) { for (int i = 0; i < count; i++) { var data = bufferAlloc.ReadStruct <SamRidEnumeration>(0, SamRidEnumeration.SizeOf, i); if (!callback(data.Name.Text, data.RelativeId)) { return; } } } } }
public AccountFlagsMessage(UserAccountFlags flags) : base(MessageType.AccountFlags) { Flags = flags; }