internal Model.LocalUserGroup Map(PSObject result) { var properties = new PsObjectProperties(result); var model = new Model.LocalUserGroup(); model.Name = properties.Get <string>("Name"); model.Description = properties.Get <string>("Description"); model.Members = new List <string>(); return(model.Name == null? null : model); }
internal LocalUserInfo MapToLocalUserInfo(PSObject result) { if (result == null) { return(null); } var properties = new PsObjectProperties(result); var flags = properties.Get("UserFlags") ?? default(int); var userFlags = new UserFlags((int)flags); var user = new LocalUserInfo(); user.Sid = result.Properties["SecurityId"]?.Value as string; user.Name = properties.Get <string>("Name"); user.FullName = properties.Get <string>("FullName"); user.Description = properties.Get <string>("Description"); user.PasswordCanBeChangedByUser = userFlags.PasswordCanBeChangedByUser; user.PasswordRequired = userFlags.PasswordRequired; user.AccountDisabled = userFlags.AccountDisabled; user.AccountLocked = userFlags.AccountLocked; user.PasswordMaxBadAttempts = properties.GetValue <int>("MaxBadPasswordsAllowed"); user.PasswordBadAttemptsInterval = properties.GetTimeSpan("LockoutObservationInterval"); user.AutoUnlockInterval = properties.GetTimeSpan("AutoUnlockInterval"); user.LastLogon = properties.GetDateTime("LastLogin"); user.PasswordMinLength = properties.GetValue <int>("MinPasswordLength"); var accountExpirationDate = properties.GetTimeSpan("AccountExpirationDate"); var passwordAge = properties.GetTimeSpan("PasswordAge"); var maxPasswordAge = properties.GetTimeSpan("MaxPasswordAge"); var passwordExpired = properties.GetValue <int>("PasswordExpired"); user.PasswordLastChange = DateTime.Now.Add(passwordAge.Negate()).Date; user.AccountExpires = GetExpirationDate(TimeSpan.Zero, accountExpirationDate); user.PasswordExpires = userFlags.PasswordCanExpire ? GetExpirationDate(passwordAge, maxPasswordAge) : null; user.PasswordMustBeChangedAtNextLogon = IsPasswordChangeRequiredOnNextLogon(passwordAge, passwordExpired); return(user); }