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);
        }
示例#2
0
        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);
        }