Home / Programmazione / C# - Asp.NET / Identificare i nomi dei PC nel dominio con C#
Mattepuffo

Identificare i nomi dei PC nel dominio con C#

Identificare i nomi dei PC nel dominio con C#

Cercando di trovare il modo per identificare i nomi dei PC connessi alla rete, mi sono imbattutto in uno script per identificare i nomi dei PC nel dominio.

Non è proprio il mio caso, in quanto identifica anche i vecchi PC non più funzionanti o PC non connessi.

Ma può comunque far comodo.

Prima di tutto dobbiamo aggiungere un reference in Visual Studio: System.DirectoryServices.

Quindi cliccate con il destro sul nomde del progetto, Add -> Reference e nella lista Assemblies cercate System.DirectoryServices.

Una volta aggiunto il reference, possiamo scrivere e lanciare il nostro codice C#:

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            List<String> list = listDomainComputers();
            foreach (String str in list)
            {
                Console.WriteLine(str);
            }
        }

        public static List<String> listDomainComputers()
        {
            List<String> computerNames = new List<String>();
            String computerSchema = "Computer";
            DirectoryEntry winNTDirectoryEntries = new DirectoryEntry("WinNT:");
            foreach (DirectoryEntry availDomains in winNTDirectoryEntries.Children)
            {
                foreach (DirectoryEntry pCNameEntry in availDomains.Children)
                {
                    if (pCNameEntry.SchemaClassName.ToLower().Contains(computerSchema.ToLower()))
                    {
                        computerNames.Add(pCNameEntry.Name);
                    }
                }
            }
            return computerNames;
        }
    }
}

Partendo da qui, e conoscendo la struttura del dominio, possiamo anche cercare in altri "posti".

Enjoy!