public static bool IsWinIdAdmin(string acctDomain, string account, string localAdminGrp, string domainAdmiGrp)
 {
     try
     {
         var dcNames = Configuration.OrganizationSetting.DcNames;
         //is non-dc
         if (!dcNames.ToLower().IsIntersectingAfterSplitWithSeparator(MachineInfoHelper.GetMachineInfo("machinename").ToLower(), ';'))
         {
             var isInAdminGroup = LocalAccountHelper.IsInGroup(acctDomain, account, localAdminGrp);
             if (isInAdminGroup)
             {
                 return(true);
             }
         }
         else//is dc
         {
             if (Configuration.OrganizationSetting.ShortDomainName == acctDomain & DomainAccountHelper.IsInGroup(Configuration.OrganizationSetting.ShortDomainName, account, "Domain Admins"))
             {
                 return(true);
             }
         }
         return(false);
     }
     catch (Exception ex)
     {
         return(false);
     }
 }
Ejemplo n.º 2
0
        //DesignatedRunAsAdminAccountStatus
        internal void RefreshDesignatedRunAsAdminAccountStatus()
        {
            try
            {
                RunningParams.DesignatedRunAsAdminAccountStatus = UniversalStatus.NotOk;
                var domain   = "";
                var account  = RunningParams.DesignatedRunAsAdminAccountName;
                var password = RunningParams.DesignatedRunAsAdminAccountPassword;
                if (string.IsNullOrEmpty(account) | string.IsNullOrEmpty(password))
                {
                    return;
                }

                if (RunningParams.IsDesignatedRunAsAdminAccountDomainAcct)
                {
                    new NetworkLocationService().RefreshNetworkDistance(); //? necessary
                    if (RunningParams.NetworkDistance == NetworkDistance.Wan | RunningParams.NetworkDistance == NetworkDistance.Unknown)
                    {
                        return;
                    }

                    if (MachineInfoHelper.GetMachineInfo("domainname") != Configuration.OrganizationSetting.FullDomainName.ToLower())
                    {
                        return;
                    }
                    domain = Configuration.OrganizationSetting.ShortDomainName;
                }

                if (!NetworkAndSystemHelper.IsWinIdAdmin(domain, account, "administrators", "Domain Admins"))
                {
                    return;
                }

                if (LocalAccountHelper.IsValidAccountAndPassword(domain, account, password))
                {
                    RunningParams.DesignatedRunAsAdminAccountStatus = UniversalStatus.Ok;
                    if (RunningParams.CurrentWinIdAsRunAsAdminAccountStatus == UniversalStatus.NotOk)
                    {
                        //RunningParams.CurrentRunAsAdminAccountDomain = domain;
                        //RunningParams.CurrentRunAsAdminAccountName = account;
                        //RunningParams.CurrentRunAsAdminAccountPassword = password;
                    }

                    if (RunningParams.Win10CompatibilityStatus == UniversalStatus.Ok &&
                        RunningParams.SeclogonWinServiceStatus == UniversalStatus.Ok)
                    {
                        RunningParams.CurrentRunAsAdminAccountDomain   = domain;
                        RunningParams.CurrentRunAsAdminAccountName     = account;
                        RunningParams.CurrentRunAsAdminAccountPassword = password;
                    }
                }
                UpdateRunAsAdminAccountStatus();
            }
            catch (Exception ex)
            {
                throw new ArgumentException("\n>> " + GetType().FullName + ".RefreshDesignatedRunAsAdminAccountStatus Error: " + ex.Message);
            }
        }
Ejemplo n.º 3
0
        //##DefaultRunAsAdminAccountStatus
        internal void RefreshDefaultRunAsAdminAccountStatus()
        {
            try
            {
                var account  = "";
                var password = "";
                RunningParams.DefaultRunAsAdminAccountStatus = UniversalStatus.NotOk;
                //domain account
                if (!string.IsNullOrEmpty(Configuration.OrganizationSetting.RunAsAdminDomainAccount))
                {
                    new NetworkLocationService().RefreshNetworkDistance(); //? necessary
                    //local account check
                    if (!string.IsNullOrEmpty(Configuration.OrganizationSetting.RunAsAdminLocalAccount))
                    {
                        account = Configuration.OrganizationSetting.RunAsAdminLocalAccount;
                        var encrptedPassword = Configuration.OrganizationSetting.RunAsAdminLocalAccountPassword;
                        password = encrptedPassword;
                        if (NetworkAndSystemHelper.IsWinIdAdmin("", account, "administrators", "Domain Admins"))
                        {
                            if (LocalAccountHelper.IsValidAccountAndPassword("", account, password))
                            {
                                RunningParams.DefaultRunAsAdminAccountStatus = UniversalStatus.Ok;
                                if (RunningParams.CurrentWinIdAsRunAsAdminAccountStatus == UniversalStatus.NotOk)
                                {
                                    RunningParams.CurrentRunAsAdminAccountDomain   = string.Empty;
                                    RunningParams.CurrentRunAsAdminAccountName     = account;
                                    RunningParams.CurrentRunAsAdminAccountPassword = password;
                                }
                            }
                        }
                        return;
                    }//local account check end

                    //domain account check
                    if (RunningParams.NetworkDistance != (int)NetworkDistance.Wan & RunningParams.NetworkDistance != NetworkDistance.Unknown)
                    {
                        if (MachineInfoHelper.GetMachineInfo("domainname") == Configuration.OrganizationSetting.FullDomainName.ToLower())
                        {
                            var domain = Configuration.OrganizationSetting.ShortDomainName;
                            account = Configuration.OrganizationSetting.RunAsAdminDomainAccount;
                            var encrptedPassword = Configuration.OrganizationSetting.RunAsAdminDomainAccountPassword;
                            password = encrptedPassword;
                            if (NetworkAndSystemHelper.IsWinIdAdmin(domain, account, "administrators", "Domain Admins"))
                            {
                                if (LocalAccountHelper.IsValidAccountAndPassword(domain, account, password))
                                {
                                    RunningParams.DefaultRunAsAdminAccountStatus = UniversalStatus.Ok;
                                    if (RunningParams.CurrentWinIdAsRunAsAdminAccountStatus == UniversalStatus.NotOk)
                                    {
                                        //RunningParams.CurrentRunAsAdminAccountDomain = domain;
                                        //RunningParams.CurrentRunAsAdminAccountName = account;
                                        //RunningParams.CurrentRunAsAdminAccountPassword = password;
                                    }
                                    if (RunningParams.Win10CompatibilityStatus == UniversalStatus.Ok &&
                                        RunningParams.SeclogonWinServiceStatus == UniversalStatus.Ok)
                                    {
                                        RunningParams.CurrentRunAsAdminAccountDomain   = domain;
                                        RunningParams.CurrentRunAsAdminAccountName     = account;
                                        RunningParams.CurrentRunAsAdminAccountPassword = password;
                                    }
                                }
                            }
                        }//domain account check ends
                    }
                }
                UpdateRunAsAdminAccountStatus();
            }
            catch (Exception ex)
            {
                throw new ArgumentException("\n>> " + GetType().FullName + ".RefreshDefaultRunAsAdminAccountStatus Error: " + ex.Message);
            }
        }