internal ADComputerDetail GetComputerBySamAccountName(String SamAccountName)
        {
            try
            {
                _directoryEntry = null;
                // DirectorySearcher directorySearch = new DirectorySearcher(SearchRoot);
                DirectorySearcher directorySearch = new DirectorySearcher(SearchRoot);

                directorySearch.Filter = "(&(objectClass=computer)(sAMAccountName=" + SamAccountName + "))";
                SearchResult results = directorySearch.FindOne();
                if (results != null)
                {
                    DirectoryEntry computer = new DirectoryEntry(results.Path, LDAPUser, LDAPPassword);
                    return(ADComputerDetail.GetComputer(computer));
                }
                else
                {
                    return(null);
                }
            }
            catch
            {
                return(null);
            }
        }
        internal ADComputerDetail GetComputerByName(String computerName)
        {
            try
            {
                _directoryEntry = null;
                DirectorySearcher directorySearch = new DirectorySearcher(SearchRoot);

                directorySearch.Filter = "(&(objectClass=computer)(cn=" + computerName + "))";
                SearchResult results = directorySearch.FindOne();

                //      MessageBox.Show(results.Path.ToString());
                //       return null;
                if (results != null)
                {
                    DirectoryEntry computer = new DirectoryEntry(results.Path, LDAPUser, LDAPPassword);
                    try
                    {
                        ADComputerDetail thiscomputer = ADComputerDetail.GetComputer(computer);
                        if (thiscomputer != null)
                        {
                            return(thiscomputer);
                        }
                        else
                        {
                            return(null);
                        }
                    }
                    catch (System.Net.Sockets.SocketException exc)
                    {
                        Console.Write("Exception " + exc.ToString());
                        return(null);
                    }
                    catch (Exception exc)
                    {
                        Console.Write("Exception " + exc.ToString());
                        return(null);
                    }
                }
                else
                {
                    return(null);
                }
            }
            catch (System.Net.Sockets.SocketException exc)
            {
                Console.Write("Exception " + exc.ToString());
                return(null);
            }
            catch (Exception exc)
            {
                Console.Write("Exception " + exc.ToString());
                return(null);
            }
        }
        internal string GetComputerOperatingSystem(string Host)
        {
            ActiveDirectoryHelper adhelper = new ActiveDirectoryHelper();

            try
            {
                ADComputerDetail computerobject = adhelper.GetComputerByName(Host);
                string           os             = computerobject.OperatingSystem;
                return(os);
            }
            catch (Exception)
            {
                return(null);
            }
        }
        internal string GetOu(string Host)
        {
            ActiveDirectoryHelper adhelper       = new ActiveDirectoryHelper();
            ADComputerDetail      computerobject = adhelper.GetComputerByName(Host);

            string ou;

            if (computerobject != null)
            {
                ou = computerobject.DistinguishedName.ToLower();
                ou = adhelper.ExtractOU(ou);
                return(ou);
            }
            else
            {
                return(null);
            }
        }