private Interfaces.ICommandResult UpdatePassword(string windowsServiceName) { try { WindowsServiceLogonUtil.UpdateWindowsServiceLogonPassword(windowsServiceName, m_password); return(new ServiceAccountRslt(this)); } catch (Exception e) { return(new ServiceAccountRslt(e.ToString(), this)); } }
private Interfaces.ICommandResult AddAccount(string windowsServiceName) { try { WindowsServiceLogonUtil.ChangeWindowsServiceLogon(windowsServiceName, m_account, m_password); WindowsGroupUtil.CreateGroup(Microsoft.TeamFoundation.Migration.Toolkit.Constants.TfsIntegrationExecWorkProcessGroupName, Microsoft.TeamFoundation.Migration.Toolkit.Constants.TfsIntegrationExecWorkProcessGroupComment); WindowsGroupUtil.AddMemberToGroup( Microsoft.TeamFoundation.Migration.Toolkit.Constants.TfsIntegrationExecWorkProcessGroupName, m_account); var rslt = DBRoleUtil.CreateWindowsLogin(m_account); if (rslt == DBRoleUtil.AccountsResult.Fail) { return(new ServiceAccountRslt(ResourceStrings.ErrorFailToAddAccountToTFSIPEXECRole, this)); } else { rslt = DBRoleUtil.CreateTFSIPEXECRole(); } if (rslt == DBRoleUtil.AccountsResult.Fail) { return(new ServiceAccountRslt(ResourceStrings.ErrorFailToAddAccountToTFSIPEXECRole, this)); } else { rslt = DBRoleUtil.AddAccountToTFSIPEXECRole(m_account); } if (rslt == DBRoleUtil.AccountsResult.Fail) { return(new ServiceAccountRslt(ResourceStrings.ErrorFailToAddAccountToTFSIPEXECRole, this)); } else { return(new ServiceAccountRslt(this)); } } catch (Exception e) { return(new ServiceAccountRslt(e.ToString(), this)); } }
public static AccountValidationResult HasAllServiceAccountPermissions( ServiceType serviceType, string account, SecurityIdentifier accountSid) { AccountValidationResult result = ServiceAccount.AccountValidationResult.Valid; try { if (!DBRoleUtil.IsAccountInTFSIPEXECRole(account)) { result |= ServiceAccount.AccountValidationResult.NotInTFSIPEXECRole; } if (!WindowsGroupUtil.IsMemberOfLocalGroup(Constants.TfsIntegrationExecWorkProcessGroupName, accountSid)) { result |= ServiceAccount.AccountValidationResult.NotInTFSIPEXECWorkProcessGroup; } if (GlobalConfiguration.UseWindowsService) { string serviceName = s_serviceNames[serviceType]; if (!WindowsServiceLogonUtil.IsLogonAccountOfService(serviceName, account)) { result |= ServiceAccount.AccountValidationResult.NotTfsIntegrationServiceLogonAccount; } } } catch (InvalidConfigurationException e) { throw; } catch (Exception e) { TraceManager.TraceException(e); result |= ServiceAccount.AccountValidationResult.ValidationFailed; } return(result); }