Esempio n. 1
0
        /// <summary>
        ///     获取指定机器用户列表
        /// </summary>
        /// <param name="domain">机器名称</param>
        /// <returns>用户列表</returns>
        public static ReadOnlyCollection <WindowsAccount> GetUsers(string domain)
        {
            var users          = new List <WindowsAccount>();
            var query          = new SelectQuery("Win32_UserAccount", $"Domain='{domain}'");
            var searcher       = new ManagementObjectSearcher(query);
            var searcherResult = searcher.Get();

            foreach (var item in searcherResult)
            {
                var account = new WindowsAccount(
                    item["Name"].ToStringOrDefault(),
                    item["FullName"].ToStringOrDefault(),
                    item["AccountType"].ToStringOrDefault(),
                    item["Description"].ToStringOrDefault(),
                    item["Caption"].ToStringOrDefault(),
                    item["Domain"].ToStringOrDefault(),
                    item["Disabled"].ToBooleanOrDefault(),
                    item["LocalAccount"].ToBooleanOrDefault(),
                    item["Status"].ToStringOrDefault(),
                    item["Lockout"].ToBooleanOrDefault());
                users.Add(account);
            }

            return(new ReadOnlyCollection <WindowsAccount>(users));
        }
 private void AssertCollectedWindowsAccount(WindowsAccount accountToAssert, string expectedAccountName, bool?accountMustBeEnabled = null)
 {
     Assert.IsNotNull(accountToAssert, "The result cannot be null.");
     Assert.AreEqual(AccountType.User, accountToAssert.AccountType, "Unexpected windows user account type was found.");
     Assert.AreEqual(expectedAccountName, accountToAssert.Name, "Unexpected user account name was found.");
     Assert.AreEqual(accountMustBeEnabled, accountToAssert.Enabled, "Unexpected user account status.");
 }
Esempio n. 3
0
        private WindowsAccount NewEveryoneAccount()
        {
            var everyoneAccount = new WindowsAccount("Everyone", true, "", AccountType.User);

            everyoneAccount.AddMember("group1", true, "");
            return(everyoneAccount);
        }
Esempio n. 4
0
        private WindowsAccount NewGuestAccount()
        {
            var guestAccount = new WindowsAccount("Guest", false, "", AccountType.User);

            guestAccount.AddMember("group1", true, "");
            guestAccount.AddMember("group2", null, "");
            return(guestAccount);
        }
Esempio n. 5
0
        private WindowsAccount GetFakeWindowsAccount(bool userEnabled, string[] fakeUserGroups)
        {
            var fakeUserAccount = new WindowsAccount("Fake User", (bool?)userEnabled, "S-1-18", AccountType.User);

            foreach (var fakeGroup in fakeUserGroups)
            {
                fakeUserAccount.AddMember(string.Format("Fake Group {0}", fakeGroup), (bool?)true, fakeGroup);
            }

            return(fakeUserAccount);
        }
Esempio n. 6
0
        private UserSID55ObjectCollector CreateMockedObjectCollector(WindowsAccount fakeUserAccount)
        {
            var fakeWindowsAccounts = new List <WindowsAccount>();

            if (fakeUserAccount != null)
            {
                fakeWindowsAccounts.Add(fakeUserAccount);
            }

            var mocks            = new MockRepository();
            var fakeUserProvider = mocks.DynamicMock <WindowsUsersProvider>(null, null);

            Expect.Call(fakeUserProvider.GetAllGroupByUsers()).Return(fakeWindowsAccounts);
            mocks.ReplayAll();

            return(new UserSID55ObjectCollector(fakeUserProvider));
        }
        private async Task <IEnumerable <String> > ImportLoginMethodAsync(IHelper helper)
        {
            List <String> violations = new List <string>();

            try
            {
                using (var loginManager = helper.GetServicesManager().CreateProxy <ILoginProfileManager>(ExecutionIdentity.CurrentUser))
                {
                    var userLoginProfile = await loginManager.GetLoginProfileAsync(ArtifactId);

                    if (!String.IsNullOrWhiteSpace(TwoFactorMode.Data) &&
                        !String.IsNullOrWhiteSpace(TwoFactorInfo.Data))
                    {
                        userLoginProfile.Password = new PasswordMethod()
                        {
                            IsEnabled = true,
                            MustResetPasswordOnNextLogin = ((Boolean?)(await UserMustChangePasswordOnNextLogin.GetDataValueAsync())).GetValueOrDefault(),
                            UserCanChangePassword        = ((Boolean?)(await CanChangePassword.GetDataValueAsync())).GetValueOrDefault(),
                            PasswordExpirationInDays     = ((Int32?)(await MaximumPasswordAgeInDays.GetDataValueAsync())).GetValueOrDefault(),
                            TwoFactorMode = (TwoFactorMode)Enum.Parse(typeof(TwoFactorMode), (String)(await TwoFactorMode.GetDataValueAsync())),
                            TwoFactorInfo = ((String)(await TwoFactorInfo.GetDataValueAsync()))
                        };
                    }

                    if (!String.IsNullOrWhiteSpace(WindowsAccount.Data))
                    {
                        userLoginProfile.IntegratedAuthentication = new IntegratedAuthenticationMethod()
                        {
                            IsEnabled = true,
                            Account   = (String)(await WindowsAccount.GetDataValueAsync())
                        };
                    }

                    await loginManager.SaveLoginProfileAsync(userLoginProfile);
                }
            }
            catch (Exception ex)
            {
                violations.Add(ex.ToString());
            }

            return(violations);
        }
Esempio n. 8
0
        private ItemType CreateUserItemFromWindowsAccount(WindowsAccount windowsAccount)
        {
            var groups = new EntityItemStringType[] { new EntityItemStringType()
                                                      {
                                                          status = StatusEnumeration.doesnotexist
                                                      } };

            if (windowsAccount.Members.HasItems())
            {
                groups = windowsAccount.Members.Select(g => new EntityItemStringType()
                {
                    Value = g.Name
                }).ToArray();
            }

            return(new user_item()
            {
                status = StatusEnumeration.exists,
                user = OvalHelper.CreateItemEntityWithStringValue(windowsAccount.Name),
                enabled = OvalHelper.CreateBooleanEntityItemFromBoolValue(windowsAccount.Enabled),
                group = groups
            });
        }