/// <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."); }
private WindowsAccount NewEveryoneAccount() { var everyoneAccount = new WindowsAccount("Everyone", true, "", AccountType.User); everyoneAccount.AddMember("group1", true, ""); return(everyoneAccount); }
private WindowsAccount NewGuestAccount() { var guestAccount = new WindowsAccount("Guest", false, "", AccountType.User); guestAccount.AddMember("group1", true, ""); guestAccount.AddMember("group2", null, ""); return(guestAccount); }
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); }
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); }
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 }); }