/// <summary>
        /// GetAdministrativeACL method implmentation
        /// </summary>
        public static ACLParametersRecord GetAdministrativeACL(MFAConfig config)
        {
            WebAdminClient manager = new WebAdminClient();

            try
            {
                manager.Initialize();
                IWebAdminServices client = manager.Open();
                try
                {
                    return(client.GetAdministrativeACL(config.Hosts.ActiveDirectoryHost.DomainName, config.Hosts.ActiveDirectoryHost.Account, config.Hosts.ActiveDirectoryHost.Password, Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + Path.DirectorySeparatorChar + "MFA"));
                }
                catch (Exception)
                {
                    manager.UnInitialize();
                    return(new ACLParametersRecord()
                    {
                        Loaded = false
                    });
                }
                finally
                {
                    manager.Close(client);
                }
            }
            catch (Exception)
            {
                return(new ACLParametersRecord()
                {
                    Loaded = false
                });
            }
        }
        /// <summary>
        /// DoRequestAdministrativeACL method implementation
        /// </summary>
        private ACLParametersRecord DoRequestAdministrativeACL(Dictionary <string, bool> servers, string domain, string account, string password, string path)
        {
            string        fqdn        = Dns.GetHostEntry("localhost").HostName;
            List <string> servernames = (from server in servers
                                         where (server.Key.ToLower() != fqdn.ToLower() && (server.Value == true))
                                         select server.Key.ToLower()).ToList <string>();

            if (servernames != null)
            {
                foreach (string srvfqdn in servernames)
                {
                    WebAdminClient webthemeclient = new WebAdminClient();
                    try
                    {
                        webthemeclient.Initialize(srvfqdn);
                        IWebAdminServices client = webthemeclient.Open();
                        try
                        {
                            ACLParametersRecord rec = client.GetAdministrativeACL(domain, account, password, path);
                            if (rec.Loaded)
                            {
                                Certs.ApplyACLs(rec, path);
                            }
                            return(rec);
                        }
                        catch (Exception e)
                        {
                            webthemeclient.UnInitialize();
                            _log.WriteEntry(string.Format("Error calling  DoRequestAdministrativeACL method : {0} => {1}.", srvfqdn, e.Message), EventLogEntryType.Error, 2011);
                        }
                        finally
                        {
                            webthemeclient.Close(client);
                        }
                    }
                    catch (Exception e)
                    {
                        _log.WriteEntry(string.Format("Error calling  DoRequestAdministrativeACL method : {0} => {1}.", srvfqdn, e.Message), EventLogEntryType.Error, 2011);
                        return(new ACLParametersRecord()
                        {
                            Loaded = false
                        });
                    }
                }
            }
            return(new ACLParametersRecord()
            {
                Loaded = false
            });
        }