Exemple #1
0
 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));
     }
 }
Exemple #2
0
        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));
            }
        }
Exemple #3
0
        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);
        }